You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by lo...@apache.org on 2022/05/02 19:03:12 UTC

[beam] branch master updated: [BEAM-11105] Add timestamp observing watermark estimation (#17476)

This is an automated email from the ASF dual-hosted git repository.

lostluck pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new 51067c12320 [BEAM-11105] Add timestamp observing watermark estimation (#17476)
51067c12320 is described below

commit 51067c123204a4951de3cba858edc96da354292b
Author: Danny McCormick <da...@google.com>
AuthorDate: Mon May 2 15:03:05 2022 -0400

    [BEAM-11105] Add timestamp observing watermark estimation (#17476)
---
 sdks/go/pkg/beam/beam.shims.go                     |   13 +-
 sdks/go/pkg/beam/core/graph/mtime/time.go          |    6 +
 sdks/go/pkg/beam/core/graph/mtime/time_test.go     |   31 +
 sdks/go/pkg/beam/core/runtime/exec/emit.go         |   17 +
 .../beam/core/runtime/exec/optimized/emitters.go   | 3046 +++++++++++++++++++-
 .../beam/core/runtime/exec/optimized/emitters.tmpl |   18 +
 sdks/go/pkg/beam/core/runtime/exec/pardo.go        |   23 +-
 sdks/go/pkg/beam/core/sdf/sdf.go                   |   13 +-
 sdks/go/pkg/beam/core/sdf/watermark_estimator.go   |   20 +
 .../runners/vet/testpipeline/testpipeline.shims.go |   13 +-
 sdks/go/pkg/beam/testing/passert/passert.shims.go  |   13 +-
 sdks/go/pkg/beam/transforms/filter/filter.shims.go |   13 +-
 sdks/go/pkg/beam/util/shimx/generate.go            |   12 +
 sdks/go/pkg/beam/util/shimx/generate_test.go       |    4 +-
 sdks/go/pkg/beam/x/debug/debug.shims.go            |   16 +-
 15 files changed, 3242 insertions(+), 16 deletions(-)

diff --git a/sdks/go/pkg/beam/beam.shims.go b/sdks/go/pkg/beam/beam.shims.go
index 598c4619fa0..28331235e56 100644
--- a/sdks/go/pkg/beam/beam.shims.go
+++ b/sdks/go/pkg/beam/beam.shims.go
@@ -26,6 +26,7 @@ import (
 	"github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime"
 	"github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec"
 	"github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/graphx/schema"
+	"github.com/apache/beam/sdks/v2/go/pkg/beam/core/sdf"
 	"github.com/apache/beam/sdks/v2/go/pkg/beam/core/typex"
 	"github.com/apache/beam/sdks/v2/go/pkg/beam/core/util/reflectx"
 )
@@ -331,8 +332,9 @@ func (c *callerTypex۰XTypex۰YГTypex۰YTypex۰X) Call2x2(arg0, arg1 interface{
 }
 
 type emitNative struct {
-	n  exec.ElementProcessor
-	fn interface{}
+	n   exec.ElementProcessor
+	fn  interface{}
+	est *sdf.WatermarkEstimator
 
 	ctx   context.Context
 	ws    []typex.Window
@@ -351,6 +353,10 @@ func (e *emitNative) Value() interface{} {
 	return e.fn
 }
 
+func (e *emitNative) AttachEstimator(est *sdf.WatermarkEstimator) {
+	e.est = est
+}
+
 func emitMakerTypex۰T(n exec.ElementProcessor) exec.ReusableEmitter {
 	ret := &emitNative{n: n}
 	ret.fn = ret.invokeTypex۰T
@@ -359,6 +365,9 @@ func emitMakerTypex۰T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex۰T(val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
diff --git a/sdks/go/pkg/beam/core/graph/mtime/time.go b/sdks/go/pkg/beam/core/graph/mtime/time.go
index bdbb0c441af..33d858d0fb7 100644
--- a/sdks/go/pkg/beam/core/graph/mtime/time.go
+++ b/sdks/go/pkg/beam/core/graph/mtime/time.go
@@ -74,6 +74,12 @@ func (t Time) Milliseconds() int64 {
 	return int64(t)
 }
 
+// ToTime returns the Time represented as a time.Time
+func (t Time) ToTime() time.Time {
+	// TODO(BEAM-13988): Replace with time.UnixMilli(int64(t)).UTC() for Go 1.17 or higher.
+	return time.Unix(0, int64(t)*1e6).UTC()
+}
+
 // Add returns the time plus the duration. Input Durations of less than one
 // millisecond will not increment the time due to a loss of precision when
 // converting to milliseconds.
diff --git a/sdks/go/pkg/beam/core/graph/mtime/time_test.go b/sdks/go/pkg/beam/core/graph/mtime/time_test.go
index 7012184c18c..e2f914686c4 100644
--- a/sdks/go/pkg/beam/core/graph/mtime/time_test.go
+++ b/sdks/go/pkg/beam/core/graph/mtime/time_test.go
@@ -213,3 +213,34 @@ func TestFromTime(t *testing.T) {
 		})
 	}
 }
+
+func TestToTime(t *testing.T) {
+	tests := []struct {
+		name   string
+		input  Time
+		expOut time.Time
+	}{
+		{
+			"zero unix",
+			Time(0),
+			time.Unix(0, 0).UTC(),
+		},
+		{
+			"behind unix",
+			Time(-1000),
+			time.Unix(-1, 0).UTC(),
+		},
+		{
+			"ahead of unix",
+			Time(1000),
+			time.Unix(1, 0).UTC(),
+		},
+	}
+	for _, test := range tests {
+		t.Run(test.name, func(t *testing.T) {
+			if got, want := test.input.ToTime(), test.expOut; got != want {
+				t.Errorf("ToTime(%v), got %v, want %v", test.input, got, want)
+			}
+		})
+	}
+}
diff --git a/sdks/go/pkg/beam/core/runtime/exec/emit.go b/sdks/go/pkg/beam/core/runtime/exec/emit.go
index c703a06aed0..e24b6925ed7 100644
--- a/sdks/go/pkg/beam/core/runtime/exec/emit.go
+++ b/sdks/go/pkg/beam/core/runtime/exec/emit.go
@@ -22,6 +22,7 @@ import (
 	"sync"
 
 	"github.com/apache/beam/sdks/v2/go/pkg/beam/core/funcx"
+	"github.com/apache/beam/sdks/v2/go/pkg/beam/core/sdf"
 	"github.com/apache/beam/sdks/v2/go/pkg/beam/core/typex"
 )
 
@@ -34,6 +35,13 @@ type ReusableEmitter interface {
 	Value() interface{}
 }
 
+// ReusableEmitter is a resettable value needed to hold the implicit context and
+// emit event time. It also has the ability to have a watermark estimator attached.
+type ReusableTimestampObservingWatermarkEmitter interface {
+	ReusableEmitter
+	AttachEstimator(est *sdf.WatermarkEstimator)
+}
+
 var (
 	emitters   = make(map[string]func(ElementProcessor) ReusableEmitter)
 	emittersMu sync.Mutex
@@ -84,6 +92,7 @@ type emitValue struct {
 	n     ElementProcessor
 	fn    interface{}
 	types []reflect.Type
+	est   *sdf.WatermarkEstimator
 
 	ctx context.Context
 	ws  []typex.Window
@@ -101,6 +110,10 @@ func (e *emitValue) Value() interface{} {
 	return e.fn
 }
 
+func (e *emitValue) AttachEstimator(est *sdf.WatermarkEstimator) {
+	e.est = est
+}
+
 func (e *emitValue) invoke(args []reflect.Value) []reflect.Value {
 	value := &FullValue{Windows: e.ws, Timestamp: e.et}
 	isKey := true
@@ -116,6 +129,10 @@ func (e *emitValue) invoke(args []reflect.Value) []reflect.Value {
 		}
 	}
 
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(value.Timestamp.ToTime())
+	}
+
 	if err := e.n.ProcessElement(e.ctx, value); err != nil {
 		// NOTE(herohde) 12/11/2017: emitters do not return an error, so if there
 		// are problems we rely on the receiving node capturing the error.
diff --git a/sdks/go/pkg/beam/core/runtime/exec/optimized/emitters.go b/sdks/go/pkg/beam/core/runtime/exec/optimized/emitters.go
index f034620cf1d..35ae2d4ecf3 100644
--- a/sdks/go/pkg/beam/core/runtime/exec/optimized/emitters.go
+++ b/sdks/go/pkg/beam/core/runtime/exec/optimized/emitters.go
@@ -22,6 +22,7 @@ import (
 	"reflect"
 
 	"github.com/apache/beam/sdks/v2/go/pkg/beam/core/runtime/exec"
+	"github.com/apache/beam/sdks/v2/go/pkg/beam/core/sdf"
 	"github.com/apache/beam/sdks/v2/go/pkg/beam/core/typex"
 )
 
@@ -1041,8 +1042,9 @@ func init() {
 }
 
 type emitNative struct {
-	n  exec.ElementProcessor
-	fn interface{}
+	n   exec.ElementProcessor
+	fn  interface{}
+	est *sdf.WatermarkEstimator
 
 	ctx   context.Context
 	ws    []typex.Window
@@ -1061,6 +1063,10 @@ func (e *emitNative) Value() interface{} {
 	return e.fn
 }
 
+func (e *emitNative) AttachEstimator(est *sdf.WatermarkEstimator) {
+	e.est = est
+}
+
 func emitMakerByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 	ret := &emitNative{n: n}
 	ret.fn = ret.invokeByteSlice
@@ -1069,6 +1075,9 @@ func emitMakerByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSlice(elm []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1082,6 +1091,9 @@ func emitMakerETByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSlice(t typex.EventTime, elm []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1095,6 +1107,9 @@ func emitMakerByteSliceByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceByteSlice(key []byte, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1108,6 +1123,9 @@ func emitMakerETByteSliceByteSlice(n exec.ElementProcessor) exec.ReusableEmitter
 
 func (e *emitNative) invokeETByteSliceByteSlice(t typex.EventTime, key []byte, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1121,6 +1139,9 @@ func emitMakerByteSliceBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceBool(key []byte, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1134,6 +1155,9 @@ func emitMakerETByteSliceBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceBool(t typex.EventTime, key []byte, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1147,6 +1171,9 @@ func emitMakerByteSliceString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceString(key []byte, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1160,6 +1187,9 @@ func emitMakerETByteSliceString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceString(t typex.EventTime, key []byte, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1173,6 +1203,9 @@ func emitMakerByteSliceInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceInt(key []byte, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1186,6 +1219,9 @@ func emitMakerETByteSliceInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceInt(t typex.EventTime, key []byte, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1199,6 +1235,9 @@ func emitMakerByteSliceInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceInt8(key []byte, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1212,6 +1251,9 @@ func emitMakerETByteSliceInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceInt8(t typex.EventTime, key []byte, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1225,6 +1267,9 @@ func emitMakerByteSliceInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceInt16(key []byte, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1238,6 +1283,9 @@ func emitMakerETByteSliceInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceInt16(t typex.EventTime, key []byte, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1251,6 +1299,9 @@ func emitMakerByteSliceInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceInt32(key []byte, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1264,6 +1315,9 @@ func emitMakerETByteSliceInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceInt32(t typex.EventTime, key []byte, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1277,6 +1331,9 @@ func emitMakerByteSliceInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceInt64(key []byte, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1290,6 +1347,9 @@ func emitMakerETByteSliceInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceInt64(t typex.EventTime, key []byte, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1303,6 +1363,9 @@ func emitMakerByteSliceUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceUint(key []byte, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1316,6 +1379,9 @@ func emitMakerETByteSliceUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceUint(t typex.EventTime, key []byte, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1329,6 +1395,9 @@ func emitMakerByteSliceUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceUint8(key []byte, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1342,6 +1411,9 @@ func emitMakerETByteSliceUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceUint8(t typex.EventTime, key []byte, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1355,6 +1427,9 @@ func emitMakerByteSliceUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceUint16(key []byte, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1368,6 +1443,9 @@ func emitMakerETByteSliceUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceUint16(t typex.EventTime, key []byte, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1381,6 +1459,9 @@ func emitMakerByteSliceUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceUint32(key []byte, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1394,6 +1475,9 @@ func emitMakerETByteSliceUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceUint32(t typex.EventTime, key []byte, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1407,6 +1491,9 @@ func emitMakerByteSliceUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceUint64(key []byte, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1420,6 +1507,9 @@ func emitMakerETByteSliceUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceUint64(t typex.EventTime, key []byte, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1433,6 +1523,9 @@ func emitMakerByteSliceFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceFloat32(key []byte, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1446,6 +1539,9 @@ func emitMakerETByteSliceFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceFloat32(t typex.EventTime, key []byte, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1459,6 +1555,9 @@ func emitMakerByteSliceFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceFloat64(key []byte, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1472,6 +1571,9 @@ func emitMakerETByteSliceFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceFloat64(t typex.EventTime, key []byte, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1485,6 +1587,9 @@ func emitMakerByteSliceTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceTypex_T(key []byte, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1498,6 +1603,9 @@ func emitMakerETByteSliceTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceTypex_T(t typex.EventTime, key []byte, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1511,6 +1619,9 @@ func emitMakerByteSliceTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceTypex_U(key []byte, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1524,6 +1635,9 @@ func emitMakerETByteSliceTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceTypex_U(t typex.EventTime, key []byte, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1537,6 +1651,9 @@ func emitMakerByteSliceTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceTypex_V(key []byte, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1550,6 +1667,9 @@ func emitMakerETByteSliceTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceTypex_V(t typex.EventTime, key []byte, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1563,6 +1683,9 @@ func emitMakerByteSliceTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceTypex_W(key []byte, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1576,6 +1699,9 @@ func emitMakerETByteSliceTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceTypex_W(t typex.EventTime, key []byte, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1589,6 +1715,9 @@ func emitMakerByteSliceTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceTypex_X(key []byte, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1602,6 +1731,9 @@ func emitMakerETByteSliceTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceTypex_X(t typex.EventTime, key []byte, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1615,6 +1747,9 @@ func emitMakerByteSliceTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceTypex_Y(key []byte, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1628,6 +1763,9 @@ func emitMakerETByteSliceTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceTypex_Y(t typex.EventTime, key []byte, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1641,6 +1779,9 @@ func emitMakerByteSliceTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeByteSliceTypex_Z(key []byte, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1654,6 +1795,9 @@ func emitMakerETByteSliceTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETByteSliceTypex_Z(t typex.EventTime, key []byte, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1667,6 +1811,9 @@ func emitMakerBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBool(elm bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1680,6 +1827,9 @@ func emitMakerETBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBool(t typex.EventTime, elm bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1693,6 +1843,9 @@ func emitMakerBoolByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolByteSlice(key bool, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1706,6 +1859,9 @@ func emitMakerETBoolByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolByteSlice(t typex.EventTime, key bool, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1719,6 +1875,9 @@ func emitMakerBoolBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolBool(key bool, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1732,6 +1891,9 @@ func emitMakerETBoolBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolBool(t typex.EventTime, key bool, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1745,6 +1907,9 @@ func emitMakerBoolString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolString(key bool, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1758,6 +1923,9 @@ func emitMakerETBoolString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolString(t typex.EventTime, key bool, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1771,6 +1939,9 @@ func emitMakerBoolInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolInt(key bool, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1784,6 +1955,9 @@ func emitMakerETBoolInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolInt(t typex.EventTime, key bool, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1797,6 +1971,9 @@ func emitMakerBoolInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolInt8(key bool, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1810,6 +1987,9 @@ func emitMakerETBoolInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolInt8(t typex.EventTime, key bool, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1823,6 +2003,9 @@ func emitMakerBoolInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolInt16(key bool, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1836,6 +2019,9 @@ func emitMakerETBoolInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolInt16(t typex.EventTime, key bool, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1849,6 +2035,9 @@ func emitMakerBoolInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolInt32(key bool, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1862,6 +2051,9 @@ func emitMakerETBoolInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolInt32(t typex.EventTime, key bool, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1875,6 +2067,9 @@ func emitMakerBoolInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolInt64(key bool, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1888,6 +2083,9 @@ func emitMakerETBoolInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolInt64(t typex.EventTime, key bool, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1901,6 +2099,9 @@ func emitMakerBoolUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolUint(key bool, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1914,6 +2115,9 @@ func emitMakerETBoolUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolUint(t typex.EventTime, key bool, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1927,6 +2131,9 @@ func emitMakerBoolUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolUint8(key bool, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1940,6 +2147,9 @@ func emitMakerETBoolUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolUint8(t typex.EventTime, key bool, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1953,6 +2163,9 @@ func emitMakerBoolUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolUint16(key bool, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1966,6 +2179,9 @@ func emitMakerETBoolUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolUint16(t typex.EventTime, key bool, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1979,6 +2195,9 @@ func emitMakerBoolUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolUint32(key bool, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -1992,6 +2211,9 @@ func emitMakerETBoolUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolUint32(t typex.EventTime, key bool, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2005,6 +2227,9 @@ func emitMakerBoolUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolUint64(key bool, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2018,6 +2243,9 @@ func emitMakerETBoolUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolUint64(t typex.EventTime, key bool, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2031,6 +2259,9 @@ func emitMakerBoolFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolFloat32(key bool, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2044,6 +2275,9 @@ func emitMakerETBoolFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolFloat32(t typex.EventTime, key bool, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2057,6 +2291,9 @@ func emitMakerBoolFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolFloat64(key bool, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2070,6 +2307,9 @@ func emitMakerETBoolFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolFloat64(t typex.EventTime, key bool, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2083,6 +2323,9 @@ func emitMakerBoolTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolTypex_T(key bool, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2096,6 +2339,9 @@ func emitMakerETBoolTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolTypex_T(t typex.EventTime, key bool, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2109,6 +2355,9 @@ func emitMakerBoolTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolTypex_U(key bool, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2122,6 +2371,9 @@ func emitMakerETBoolTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolTypex_U(t typex.EventTime, key bool, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2135,6 +2387,9 @@ func emitMakerBoolTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolTypex_V(key bool, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2148,6 +2403,9 @@ func emitMakerETBoolTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolTypex_V(t typex.EventTime, key bool, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2161,6 +2419,9 @@ func emitMakerBoolTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolTypex_W(key bool, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2174,6 +2435,9 @@ func emitMakerETBoolTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolTypex_W(t typex.EventTime, key bool, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2187,6 +2451,9 @@ func emitMakerBoolTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolTypex_X(key bool, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2200,6 +2467,9 @@ func emitMakerETBoolTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolTypex_X(t typex.EventTime, key bool, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2213,6 +2483,9 @@ func emitMakerBoolTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolTypex_Y(key bool, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2226,6 +2499,9 @@ func emitMakerETBoolTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolTypex_Y(t typex.EventTime, key bool, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2239,6 +2515,9 @@ func emitMakerBoolTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeBoolTypex_Z(key bool, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2252,6 +2531,9 @@ func emitMakerETBoolTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETBoolTypex_Z(t typex.EventTime, key bool, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2265,6 +2547,9 @@ func emitMakerString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeString(elm string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2278,6 +2563,9 @@ func emitMakerETString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETString(t typex.EventTime, elm string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2291,6 +2579,9 @@ func emitMakerStringByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringByteSlice(key string, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2304,6 +2595,9 @@ func emitMakerETStringByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringByteSlice(t typex.EventTime, key string, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2317,6 +2611,9 @@ func emitMakerStringBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringBool(key string, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2330,6 +2627,9 @@ func emitMakerETStringBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringBool(t typex.EventTime, key string, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2343,6 +2643,9 @@ func emitMakerStringString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringString(key string, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2356,6 +2659,9 @@ func emitMakerETStringString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringString(t typex.EventTime, key string, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2369,6 +2675,9 @@ func emitMakerStringInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringInt(key string, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2382,6 +2691,9 @@ func emitMakerETStringInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringInt(t typex.EventTime, key string, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2395,6 +2707,9 @@ func emitMakerStringInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringInt8(key string, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2408,6 +2723,9 @@ func emitMakerETStringInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringInt8(t typex.EventTime, key string, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2421,6 +2739,9 @@ func emitMakerStringInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringInt16(key string, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2434,6 +2755,9 @@ func emitMakerETStringInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringInt16(t typex.EventTime, key string, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2447,6 +2771,9 @@ func emitMakerStringInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringInt32(key string, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2460,6 +2787,9 @@ func emitMakerETStringInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringInt32(t typex.EventTime, key string, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2473,6 +2803,9 @@ func emitMakerStringInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringInt64(key string, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2486,6 +2819,9 @@ func emitMakerETStringInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringInt64(t typex.EventTime, key string, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2499,6 +2835,9 @@ func emitMakerStringUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringUint(key string, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2512,6 +2851,9 @@ func emitMakerETStringUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringUint(t typex.EventTime, key string, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2525,6 +2867,9 @@ func emitMakerStringUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringUint8(key string, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2538,6 +2883,9 @@ func emitMakerETStringUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringUint8(t typex.EventTime, key string, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2551,6 +2899,9 @@ func emitMakerStringUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringUint16(key string, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2564,6 +2915,9 @@ func emitMakerETStringUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringUint16(t typex.EventTime, key string, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2577,6 +2931,9 @@ func emitMakerStringUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringUint32(key string, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2590,6 +2947,9 @@ func emitMakerETStringUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringUint32(t typex.EventTime, key string, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2603,6 +2963,9 @@ func emitMakerStringUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringUint64(key string, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2616,6 +2979,9 @@ func emitMakerETStringUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringUint64(t typex.EventTime, key string, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2629,6 +2995,9 @@ func emitMakerStringFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringFloat32(key string, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2642,6 +3011,9 @@ func emitMakerETStringFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringFloat32(t typex.EventTime, key string, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2655,6 +3027,9 @@ func emitMakerStringFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringFloat64(key string, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2668,6 +3043,9 @@ func emitMakerETStringFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringFloat64(t typex.EventTime, key string, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2681,6 +3059,9 @@ func emitMakerStringTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringTypex_T(key string, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2694,6 +3075,9 @@ func emitMakerETStringTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringTypex_T(t typex.EventTime, key string, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2707,6 +3091,9 @@ func emitMakerStringTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringTypex_U(key string, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2720,6 +3107,9 @@ func emitMakerETStringTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringTypex_U(t typex.EventTime, key string, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2733,6 +3123,9 @@ func emitMakerStringTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringTypex_V(key string, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2746,6 +3139,9 @@ func emitMakerETStringTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringTypex_V(t typex.EventTime, key string, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2759,6 +3155,9 @@ func emitMakerStringTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringTypex_W(key string, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2772,6 +3171,9 @@ func emitMakerETStringTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringTypex_W(t typex.EventTime, key string, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2785,6 +3187,9 @@ func emitMakerStringTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringTypex_X(key string, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2798,6 +3203,9 @@ func emitMakerETStringTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringTypex_X(t typex.EventTime, key string, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2811,6 +3219,9 @@ func emitMakerStringTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringTypex_Y(key string, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2824,6 +3235,9 @@ func emitMakerETStringTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringTypex_Y(t typex.EventTime, key string, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2837,6 +3251,9 @@ func emitMakerStringTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeStringTypex_Z(key string, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2850,6 +3267,9 @@ func emitMakerETStringTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETStringTypex_Z(t typex.EventTime, key string, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2863,6 +3283,9 @@ func emitMakerInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt(elm int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2876,6 +3299,9 @@ func emitMakerETInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt(t typex.EventTime, elm int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2889,6 +3315,9 @@ func emitMakerIntByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntByteSlice(key int, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2902,6 +3331,9 @@ func emitMakerETIntByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntByteSlice(t typex.EventTime, key int, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2915,6 +3347,9 @@ func emitMakerIntBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntBool(key int, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2928,6 +3363,9 @@ func emitMakerETIntBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntBool(t typex.EventTime, key int, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2941,6 +3379,9 @@ func emitMakerIntString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntString(key int, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2954,6 +3395,9 @@ func emitMakerETIntString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntString(t typex.EventTime, key int, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2967,6 +3411,9 @@ func emitMakerIntInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntInt(key int, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2980,6 +3427,9 @@ func emitMakerETIntInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntInt(t typex.EventTime, key int, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -2993,6 +3443,9 @@ func emitMakerIntInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntInt8(key int, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3006,6 +3459,9 @@ func emitMakerETIntInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntInt8(t typex.EventTime, key int, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3019,6 +3475,9 @@ func emitMakerIntInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntInt16(key int, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3032,6 +3491,9 @@ func emitMakerETIntInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntInt16(t typex.EventTime, key int, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3045,6 +3507,9 @@ func emitMakerIntInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntInt32(key int, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3058,6 +3523,9 @@ func emitMakerETIntInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntInt32(t typex.EventTime, key int, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3071,6 +3539,9 @@ func emitMakerIntInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntInt64(key int, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3084,6 +3555,9 @@ func emitMakerETIntInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntInt64(t typex.EventTime, key int, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3097,6 +3571,9 @@ func emitMakerIntUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntUint(key int, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3110,6 +3587,9 @@ func emitMakerETIntUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntUint(t typex.EventTime, key int, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3123,6 +3603,9 @@ func emitMakerIntUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntUint8(key int, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3136,6 +3619,9 @@ func emitMakerETIntUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntUint8(t typex.EventTime, key int, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3149,6 +3635,9 @@ func emitMakerIntUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntUint16(key int, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3162,6 +3651,9 @@ func emitMakerETIntUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntUint16(t typex.EventTime, key int, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3175,6 +3667,9 @@ func emitMakerIntUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntUint32(key int, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3188,6 +3683,9 @@ func emitMakerETIntUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntUint32(t typex.EventTime, key int, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3201,6 +3699,9 @@ func emitMakerIntUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntUint64(key int, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3214,6 +3715,9 @@ func emitMakerETIntUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntUint64(t typex.EventTime, key int, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3227,6 +3731,9 @@ func emitMakerIntFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntFloat32(key int, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3240,6 +3747,9 @@ func emitMakerETIntFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntFloat32(t typex.EventTime, key int, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3253,6 +3763,9 @@ func emitMakerIntFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntFloat64(key int, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3266,6 +3779,9 @@ func emitMakerETIntFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntFloat64(t typex.EventTime, key int, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3279,6 +3795,9 @@ func emitMakerIntTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntTypex_T(key int, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3292,6 +3811,9 @@ func emitMakerETIntTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntTypex_T(t typex.EventTime, key int, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3305,6 +3827,9 @@ func emitMakerIntTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntTypex_U(key int, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3318,6 +3843,9 @@ func emitMakerETIntTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntTypex_U(t typex.EventTime, key int, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3331,6 +3859,9 @@ func emitMakerIntTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntTypex_V(key int, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3344,6 +3875,9 @@ func emitMakerETIntTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntTypex_V(t typex.EventTime, key int, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3357,6 +3891,9 @@ func emitMakerIntTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntTypex_W(key int, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3370,6 +3907,9 @@ func emitMakerETIntTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntTypex_W(t typex.EventTime, key int, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3383,6 +3923,9 @@ func emitMakerIntTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntTypex_X(key int, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3396,6 +3939,9 @@ func emitMakerETIntTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntTypex_X(t typex.EventTime, key int, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3409,6 +3955,9 @@ func emitMakerIntTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntTypex_Y(key int, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3422,6 +3971,9 @@ func emitMakerETIntTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntTypex_Y(t typex.EventTime, key int, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3435,6 +3987,9 @@ func emitMakerIntTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeIntTypex_Z(key int, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3448,6 +4003,9 @@ func emitMakerETIntTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETIntTypex_Z(t typex.EventTime, key int, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3461,6 +4019,9 @@ func emitMakerInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8(elm int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3474,6 +4035,9 @@ func emitMakerETInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8(t typex.EventTime, elm int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3487,6 +4051,9 @@ func emitMakerInt8ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8ByteSlice(key int8, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3500,6 +4067,9 @@ func emitMakerETInt8ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8ByteSlice(t typex.EventTime, key int8, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3513,6 +4083,9 @@ func emitMakerInt8Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Bool(key int8, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3526,6 +4099,9 @@ func emitMakerETInt8Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Bool(t typex.EventTime, key int8, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3539,6 +4115,9 @@ func emitMakerInt8String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8String(key int8, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3552,6 +4131,9 @@ func emitMakerETInt8String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8String(t typex.EventTime, key int8, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3565,6 +4147,9 @@ func emitMakerInt8Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Int(key int8, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3578,6 +4163,9 @@ func emitMakerETInt8Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Int(t typex.EventTime, key int8, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3591,6 +4179,9 @@ func emitMakerInt8Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Int8(key int8, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3604,6 +4195,9 @@ func emitMakerETInt8Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Int8(t typex.EventTime, key int8, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3617,6 +4211,9 @@ func emitMakerInt8Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Int16(key int8, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3630,6 +4227,9 @@ func emitMakerETInt8Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Int16(t typex.EventTime, key int8, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3643,6 +4243,9 @@ func emitMakerInt8Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Int32(key int8, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3656,6 +4259,9 @@ func emitMakerETInt8Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Int32(t typex.EventTime, key int8, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3669,6 +4275,9 @@ func emitMakerInt8Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Int64(key int8, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3682,6 +4291,9 @@ func emitMakerETInt8Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Int64(t typex.EventTime, key int8, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3695,6 +4307,9 @@ func emitMakerInt8Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Uint(key int8, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3708,6 +4323,9 @@ func emitMakerETInt8Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Uint(t typex.EventTime, key int8, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3721,6 +4339,9 @@ func emitMakerInt8Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Uint8(key int8, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3734,6 +4355,9 @@ func emitMakerETInt8Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Uint8(t typex.EventTime, key int8, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3747,6 +4371,9 @@ func emitMakerInt8Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Uint16(key int8, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3760,6 +4387,9 @@ func emitMakerETInt8Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Uint16(t typex.EventTime, key int8, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3773,6 +4403,9 @@ func emitMakerInt8Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Uint32(key int8, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3786,6 +4419,9 @@ func emitMakerETInt8Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Uint32(t typex.EventTime, key int8, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3799,6 +4435,9 @@ func emitMakerInt8Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Uint64(key int8, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3812,6 +4451,9 @@ func emitMakerETInt8Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Uint64(t typex.EventTime, key int8, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3825,6 +4467,9 @@ func emitMakerInt8Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Float32(key int8, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3838,6 +4483,9 @@ func emitMakerETInt8Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Float32(t typex.EventTime, key int8, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3851,6 +4499,9 @@ func emitMakerInt8Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Float64(key int8, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3864,6 +4515,9 @@ func emitMakerETInt8Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Float64(t typex.EventTime, key int8, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3877,6 +4531,9 @@ func emitMakerInt8Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Typex_T(key int8, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3890,6 +4547,9 @@ func emitMakerETInt8Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Typex_T(t typex.EventTime, key int8, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3903,6 +4563,9 @@ func emitMakerInt8Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Typex_U(key int8, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3916,6 +4579,9 @@ func emitMakerETInt8Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Typex_U(t typex.EventTime, key int8, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3929,6 +4595,9 @@ func emitMakerInt8Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Typex_V(key int8, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3942,6 +4611,9 @@ func emitMakerETInt8Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Typex_V(t typex.EventTime, key int8, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3955,6 +4627,9 @@ func emitMakerInt8Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Typex_W(key int8, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3968,6 +4643,9 @@ func emitMakerETInt8Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Typex_W(t typex.EventTime, key int8, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3981,6 +4659,9 @@ func emitMakerInt8Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Typex_X(key int8, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -3994,6 +4675,9 @@ func emitMakerETInt8Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Typex_X(t typex.EventTime, key int8, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4007,6 +4691,9 @@ func emitMakerInt8Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Typex_Y(key int8, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4020,6 +4707,9 @@ func emitMakerETInt8Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Typex_Y(t typex.EventTime, key int8, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4033,6 +4723,9 @@ func emitMakerInt8Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt8Typex_Z(key int8, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4046,6 +4739,9 @@ func emitMakerETInt8Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt8Typex_Z(t typex.EventTime, key int8, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4059,6 +4755,9 @@ func emitMakerInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16(elm int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4072,6 +4771,9 @@ func emitMakerETInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16(t typex.EventTime, elm int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4085,6 +4787,9 @@ func emitMakerInt16ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16ByteSlice(key int16, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4098,6 +4803,9 @@ func emitMakerETInt16ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16ByteSlice(t typex.EventTime, key int16, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4111,6 +4819,9 @@ func emitMakerInt16Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Bool(key int16, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4124,6 +4835,9 @@ func emitMakerETInt16Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Bool(t typex.EventTime, key int16, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4137,6 +4851,9 @@ func emitMakerInt16String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16String(key int16, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4150,6 +4867,9 @@ func emitMakerETInt16String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16String(t typex.EventTime, key int16, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4163,6 +4883,9 @@ func emitMakerInt16Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Int(key int16, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4176,6 +4899,9 @@ func emitMakerETInt16Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Int(t typex.EventTime, key int16, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4189,6 +4915,9 @@ func emitMakerInt16Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Int8(key int16, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4202,6 +4931,9 @@ func emitMakerETInt16Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Int8(t typex.EventTime, key int16, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4215,6 +4947,9 @@ func emitMakerInt16Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Int16(key int16, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4228,6 +4963,9 @@ func emitMakerETInt16Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Int16(t typex.EventTime, key int16, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4241,6 +4979,9 @@ func emitMakerInt16Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Int32(key int16, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4254,6 +4995,9 @@ func emitMakerETInt16Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Int32(t typex.EventTime, key int16, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4267,6 +5011,9 @@ func emitMakerInt16Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Int64(key int16, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4280,6 +5027,9 @@ func emitMakerETInt16Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Int64(t typex.EventTime, key int16, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4293,6 +5043,9 @@ func emitMakerInt16Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Uint(key int16, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4306,6 +5059,9 @@ func emitMakerETInt16Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Uint(t typex.EventTime, key int16, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4319,6 +5075,9 @@ func emitMakerInt16Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Uint8(key int16, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4332,6 +5091,9 @@ func emitMakerETInt16Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Uint8(t typex.EventTime, key int16, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4345,6 +5107,9 @@ func emitMakerInt16Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Uint16(key int16, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4358,6 +5123,9 @@ func emitMakerETInt16Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Uint16(t typex.EventTime, key int16, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4371,6 +5139,9 @@ func emitMakerInt16Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Uint32(key int16, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4384,6 +5155,9 @@ func emitMakerETInt16Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Uint32(t typex.EventTime, key int16, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4397,6 +5171,9 @@ func emitMakerInt16Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Uint64(key int16, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4410,6 +5187,9 @@ func emitMakerETInt16Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Uint64(t typex.EventTime, key int16, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4423,6 +5203,9 @@ func emitMakerInt16Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Float32(key int16, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4436,6 +5219,9 @@ func emitMakerETInt16Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Float32(t typex.EventTime, key int16, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4449,6 +5235,9 @@ func emitMakerInt16Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Float64(key int16, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4462,6 +5251,9 @@ func emitMakerETInt16Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Float64(t typex.EventTime, key int16, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4475,6 +5267,9 @@ func emitMakerInt16Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Typex_T(key int16, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4488,6 +5283,9 @@ func emitMakerETInt16Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Typex_T(t typex.EventTime, key int16, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4501,6 +5299,9 @@ func emitMakerInt16Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Typex_U(key int16, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4514,6 +5315,9 @@ func emitMakerETInt16Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Typex_U(t typex.EventTime, key int16, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4527,6 +5331,9 @@ func emitMakerInt16Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Typex_V(key int16, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4540,6 +5347,9 @@ func emitMakerETInt16Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Typex_V(t typex.EventTime, key int16, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4553,6 +5363,9 @@ func emitMakerInt16Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Typex_W(key int16, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4566,6 +5379,9 @@ func emitMakerETInt16Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Typex_W(t typex.EventTime, key int16, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4579,6 +5395,9 @@ func emitMakerInt16Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Typex_X(key int16, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4592,6 +5411,9 @@ func emitMakerETInt16Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Typex_X(t typex.EventTime, key int16, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4605,6 +5427,9 @@ func emitMakerInt16Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Typex_Y(key int16, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4618,6 +5443,9 @@ func emitMakerETInt16Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Typex_Y(t typex.EventTime, key int16, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4631,6 +5459,9 @@ func emitMakerInt16Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt16Typex_Z(key int16, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4644,6 +5475,9 @@ func emitMakerETInt16Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt16Typex_Z(t typex.EventTime, key int16, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4657,6 +5491,9 @@ func emitMakerInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32(elm int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4670,6 +5507,9 @@ func emitMakerETInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32(t typex.EventTime, elm int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4683,6 +5523,9 @@ func emitMakerInt32ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32ByteSlice(key int32, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4696,6 +5539,9 @@ func emitMakerETInt32ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32ByteSlice(t typex.EventTime, key int32, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4709,6 +5555,9 @@ func emitMakerInt32Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Bool(key int32, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4722,6 +5571,9 @@ func emitMakerETInt32Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Bool(t typex.EventTime, key int32, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4735,6 +5587,9 @@ func emitMakerInt32String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32String(key int32, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4748,6 +5603,9 @@ func emitMakerETInt32String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32String(t typex.EventTime, key int32, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4761,6 +5619,9 @@ func emitMakerInt32Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Int(key int32, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4774,6 +5635,9 @@ func emitMakerETInt32Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Int(t typex.EventTime, key int32, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4787,6 +5651,9 @@ func emitMakerInt32Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Int8(key int32, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4800,6 +5667,9 @@ func emitMakerETInt32Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Int8(t typex.EventTime, key int32, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4813,6 +5683,9 @@ func emitMakerInt32Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Int16(key int32, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4826,6 +5699,9 @@ func emitMakerETInt32Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Int16(t typex.EventTime, key int32, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4839,6 +5715,9 @@ func emitMakerInt32Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Int32(key int32, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4852,6 +5731,9 @@ func emitMakerETInt32Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Int32(t typex.EventTime, key int32, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4865,6 +5747,9 @@ func emitMakerInt32Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Int64(key int32, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4878,6 +5763,9 @@ func emitMakerETInt32Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Int64(t typex.EventTime, key int32, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4891,6 +5779,9 @@ func emitMakerInt32Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Uint(key int32, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4904,6 +5795,9 @@ func emitMakerETInt32Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Uint(t typex.EventTime, key int32, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4917,6 +5811,9 @@ func emitMakerInt32Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Uint8(key int32, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4930,6 +5827,9 @@ func emitMakerETInt32Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Uint8(t typex.EventTime, key int32, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4943,6 +5843,9 @@ func emitMakerInt32Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Uint16(key int32, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4956,6 +5859,9 @@ func emitMakerETInt32Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Uint16(t typex.EventTime, key int32, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4969,6 +5875,9 @@ func emitMakerInt32Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Uint32(key int32, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4982,6 +5891,9 @@ func emitMakerETInt32Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Uint32(t typex.EventTime, key int32, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -4995,6 +5907,9 @@ func emitMakerInt32Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Uint64(key int32, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5008,6 +5923,9 @@ func emitMakerETInt32Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Uint64(t typex.EventTime, key int32, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5021,6 +5939,9 @@ func emitMakerInt32Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Float32(key int32, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5034,6 +5955,9 @@ func emitMakerETInt32Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Float32(t typex.EventTime, key int32, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5047,6 +5971,9 @@ func emitMakerInt32Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Float64(key int32, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5060,6 +5987,9 @@ func emitMakerETInt32Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Float64(t typex.EventTime, key int32, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5073,6 +6003,9 @@ func emitMakerInt32Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Typex_T(key int32, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5086,6 +6019,9 @@ func emitMakerETInt32Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Typex_T(t typex.EventTime, key int32, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5099,6 +6035,9 @@ func emitMakerInt32Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Typex_U(key int32, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5112,6 +6051,9 @@ func emitMakerETInt32Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Typex_U(t typex.EventTime, key int32, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5125,6 +6067,9 @@ func emitMakerInt32Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Typex_V(key int32, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5138,6 +6083,9 @@ func emitMakerETInt32Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Typex_V(t typex.EventTime, key int32, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5151,6 +6099,9 @@ func emitMakerInt32Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Typex_W(key int32, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5164,6 +6115,9 @@ func emitMakerETInt32Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Typex_W(t typex.EventTime, key int32, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5177,6 +6131,9 @@ func emitMakerInt32Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Typex_X(key int32, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5190,6 +6147,9 @@ func emitMakerETInt32Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Typex_X(t typex.EventTime, key int32, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5203,6 +6163,9 @@ func emitMakerInt32Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Typex_Y(key int32, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5216,6 +6179,9 @@ func emitMakerETInt32Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Typex_Y(t typex.EventTime, key int32, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5229,6 +6195,9 @@ func emitMakerInt32Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt32Typex_Z(key int32, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5242,6 +6211,9 @@ func emitMakerETInt32Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt32Typex_Z(t typex.EventTime, key int32, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5255,6 +6227,9 @@ func emitMakerInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64(elm int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5268,6 +6243,9 @@ func emitMakerETInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64(t typex.EventTime, elm int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5281,6 +6259,9 @@ func emitMakerInt64ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64ByteSlice(key int64, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5294,6 +6275,9 @@ func emitMakerETInt64ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64ByteSlice(t typex.EventTime, key int64, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5307,6 +6291,9 @@ func emitMakerInt64Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Bool(key int64, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5320,6 +6307,9 @@ func emitMakerETInt64Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Bool(t typex.EventTime, key int64, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5333,6 +6323,9 @@ func emitMakerInt64String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64String(key int64, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5346,6 +6339,9 @@ func emitMakerETInt64String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64String(t typex.EventTime, key int64, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5359,6 +6355,9 @@ func emitMakerInt64Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Int(key int64, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5372,6 +6371,9 @@ func emitMakerETInt64Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Int(t typex.EventTime, key int64, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5385,6 +6387,9 @@ func emitMakerInt64Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Int8(key int64, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5398,6 +6403,9 @@ func emitMakerETInt64Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Int8(t typex.EventTime, key int64, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5411,6 +6419,9 @@ func emitMakerInt64Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Int16(key int64, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5424,6 +6435,9 @@ func emitMakerETInt64Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Int16(t typex.EventTime, key int64, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5437,6 +6451,9 @@ func emitMakerInt64Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Int32(key int64, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5450,6 +6467,9 @@ func emitMakerETInt64Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Int32(t typex.EventTime, key int64, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5463,6 +6483,9 @@ func emitMakerInt64Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Int64(key int64, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5476,6 +6499,9 @@ func emitMakerETInt64Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Int64(t typex.EventTime, key int64, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5489,6 +6515,9 @@ func emitMakerInt64Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Uint(key int64, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5502,6 +6531,9 @@ func emitMakerETInt64Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Uint(t typex.EventTime, key int64, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5515,6 +6547,9 @@ func emitMakerInt64Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Uint8(key int64, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5528,6 +6563,9 @@ func emitMakerETInt64Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Uint8(t typex.EventTime, key int64, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5541,6 +6579,9 @@ func emitMakerInt64Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Uint16(key int64, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5554,6 +6595,9 @@ func emitMakerETInt64Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Uint16(t typex.EventTime, key int64, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5567,6 +6611,9 @@ func emitMakerInt64Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Uint32(key int64, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5580,6 +6627,9 @@ func emitMakerETInt64Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Uint32(t typex.EventTime, key int64, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5593,6 +6643,9 @@ func emitMakerInt64Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Uint64(key int64, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5606,6 +6659,9 @@ func emitMakerETInt64Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Uint64(t typex.EventTime, key int64, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5619,6 +6675,9 @@ func emitMakerInt64Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Float32(key int64, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5632,6 +6691,9 @@ func emitMakerETInt64Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Float32(t typex.EventTime, key int64, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5645,6 +6707,9 @@ func emitMakerInt64Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Float64(key int64, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5658,6 +6723,9 @@ func emitMakerETInt64Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Float64(t typex.EventTime, key int64, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5671,6 +6739,9 @@ func emitMakerInt64Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Typex_T(key int64, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5684,6 +6755,9 @@ func emitMakerETInt64Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Typex_T(t typex.EventTime, key int64, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5697,6 +6771,9 @@ func emitMakerInt64Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Typex_U(key int64, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5710,6 +6787,9 @@ func emitMakerETInt64Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Typex_U(t typex.EventTime, key int64, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5723,6 +6803,9 @@ func emitMakerInt64Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Typex_V(key int64, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5736,6 +6819,9 @@ func emitMakerETInt64Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Typex_V(t typex.EventTime, key int64, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5749,6 +6835,9 @@ func emitMakerInt64Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Typex_W(key int64, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5762,6 +6851,9 @@ func emitMakerETInt64Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Typex_W(t typex.EventTime, key int64, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5775,6 +6867,9 @@ func emitMakerInt64Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Typex_X(key int64, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5788,6 +6883,9 @@ func emitMakerETInt64Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Typex_X(t typex.EventTime, key int64, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5801,6 +6899,9 @@ func emitMakerInt64Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Typex_Y(key int64, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5814,6 +6915,9 @@ func emitMakerETInt64Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Typex_Y(t typex.EventTime, key int64, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5827,6 +6931,9 @@ func emitMakerInt64Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeInt64Typex_Z(key int64, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5840,6 +6947,9 @@ func emitMakerETInt64Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETInt64Typex_Z(t typex.EventTime, key int64, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5853,6 +6963,9 @@ func emitMakerUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint(elm uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5866,6 +6979,9 @@ func emitMakerETUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint(t typex.EventTime, elm uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5879,6 +6995,9 @@ func emitMakerUintByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintByteSlice(key uint, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5892,6 +7011,9 @@ func emitMakerETUintByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintByteSlice(t typex.EventTime, key uint, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5905,6 +7027,9 @@ func emitMakerUintBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintBool(key uint, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5918,6 +7043,9 @@ func emitMakerETUintBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintBool(t typex.EventTime, key uint, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5931,6 +7059,9 @@ func emitMakerUintString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintString(key uint, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5944,6 +7075,9 @@ func emitMakerETUintString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintString(t typex.EventTime, key uint, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5957,6 +7091,9 @@ func emitMakerUintInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintInt(key uint, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5970,6 +7107,9 @@ func emitMakerETUintInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintInt(t typex.EventTime, key uint, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5983,6 +7123,9 @@ func emitMakerUintInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintInt8(key uint, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -5996,6 +7139,9 @@ func emitMakerETUintInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintInt8(t typex.EventTime, key uint, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6009,6 +7155,9 @@ func emitMakerUintInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintInt16(key uint, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6022,6 +7171,9 @@ func emitMakerETUintInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintInt16(t typex.EventTime, key uint, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6035,6 +7187,9 @@ func emitMakerUintInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintInt32(key uint, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6048,6 +7203,9 @@ func emitMakerETUintInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintInt32(t typex.EventTime, key uint, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6061,6 +7219,9 @@ func emitMakerUintInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintInt64(key uint, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6074,6 +7235,9 @@ func emitMakerETUintInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintInt64(t typex.EventTime, key uint, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6087,6 +7251,9 @@ func emitMakerUintUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintUint(key uint, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6100,6 +7267,9 @@ func emitMakerETUintUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintUint(t typex.EventTime, key uint, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6113,6 +7283,9 @@ func emitMakerUintUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintUint8(key uint, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6126,6 +7299,9 @@ func emitMakerETUintUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintUint8(t typex.EventTime, key uint, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6139,6 +7315,9 @@ func emitMakerUintUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintUint16(key uint, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6152,6 +7331,9 @@ func emitMakerETUintUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintUint16(t typex.EventTime, key uint, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6165,6 +7347,9 @@ func emitMakerUintUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintUint32(key uint, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6178,6 +7363,9 @@ func emitMakerETUintUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintUint32(t typex.EventTime, key uint, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6191,6 +7379,9 @@ func emitMakerUintUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintUint64(key uint, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6204,6 +7395,9 @@ func emitMakerETUintUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintUint64(t typex.EventTime, key uint, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6217,6 +7411,9 @@ func emitMakerUintFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintFloat32(key uint, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6230,6 +7427,9 @@ func emitMakerETUintFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintFloat32(t typex.EventTime, key uint, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6243,6 +7443,9 @@ func emitMakerUintFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintFloat64(key uint, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6256,6 +7459,9 @@ func emitMakerETUintFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintFloat64(t typex.EventTime, key uint, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6269,6 +7475,9 @@ func emitMakerUintTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintTypex_T(key uint, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6282,6 +7491,9 @@ func emitMakerETUintTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintTypex_T(t typex.EventTime, key uint, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6295,6 +7507,9 @@ func emitMakerUintTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintTypex_U(key uint, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6308,6 +7523,9 @@ func emitMakerETUintTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintTypex_U(t typex.EventTime, key uint, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6321,6 +7539,9 @@ func emitMakerUintTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintTypex_V(key uint, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6334,6 +7555,9 @@ func emitMakerETUintTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintTypex_V(t typex.EventTime, key uint, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6347,6 +7571,9 @@ func emitMakerUintTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintTypex_W(key uint, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6360,6 +7587,9 @@ func emitMakerETUintTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintTypex_W(t typex.EventTime, key uint, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6373,6 +7603,9 @@ func emitMakerUintTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintTypex_X(key uint, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6386,6 +7619,9 @@ func emitMakerETUintTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintTypex_X(t typex.EventTime, key uint, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6399,6 +7635,9 @@ func emitMakerUintTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintTypex_Y(key uint, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6412,6 +7651,9 @@ func emitMakerETUintTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintTypex_Y(t typex.EventTime, key uint, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6425,6 +7667,9 @@ func emitMakerUintTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUintTypex_Z(key uint, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6438,6 +7683,9 @@ func emitMakerETUintTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUintTypex_Z(t typex.EventTime, key uint, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6451,6 +7699,9 @@ func emitMakerUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8(elm uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6464,6 +7715,9 @@ func emitMakerETUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8(t typex.EventTime, elm uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6477,6 +7731,9 @@ func emitMakerUint8ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8ByteSlice(key uint8, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6490,6 +7747,9 @@ func emitMakerETUint8ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8ByteSlice(t typex.EventTime, key uint8, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6503,6 +7763,9 @@ func emitMakerUint8Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Bool(key uint8, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6516,6 +7779,9 @@ func emitMakerETUint8Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Bool(t typex.EventTime, key uint8, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6529,6 +7795,9 @@ func emitMakerUint8String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8String(key uint8, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6542,6 +7811,9 @@ func emitMakerETUint8String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8String(t typex.EventTime, key uint8, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6555,6 +7827,9 @@ func emitMakerUint8Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Int(key uint8, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6568,6 +7843,9 @@ func emitMakerETUint8Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Int(t typex.EventTime, key uint8, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6581,6 +7859,9 @@ func emitMakerUint8Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Int8(key uint8, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6594,6 +7875,9 @@ func emitMakerETUint8Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Int8(t typex.EventTime, key uint8, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6607,6 +7891,9 @@ func emitMakerUint8Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Int16(key uint8, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6620,6 +7907,9 @@ func emitMakerETUint8Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Int16(t typex.EventTime, key uint8, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6633,6 +7923,9 @@ func emitMakerUint8Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Int32(key uint8, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6646,6 +7939,9 @@ func emitMakerETUint8Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Int32(t typex.EventTime, key uint8, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6659,6 +7955,9 @@ func emitMakerUint8Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Int64(key uint8, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6672,6 +7971,9 @@ func emitMakerETUint8Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Int64(t typex.EventTime, key uint8, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6685,6 +7987,9 @@ func emitMakerUint8Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Uint(key uint8, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6698,6 +8003,9 @@ func emitMakerETUint8Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Uint(t typex.EventTime, key uint8, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6711,6 +8019,9 @@ func emitMakerUint8Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Uint8(key uint8, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6724,6 +8035,9 @@ func emitMakerETUint8Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Uint8(t typex.EventTime, key uint8, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6737,6 +8051,9 @@ func emitMakerUint8Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Uint16(key uint8, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6750,6 +8067,9 @@ func emitMakerETUint8Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Uint16(t typex.EventTime, key uint8, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6763,6 +8083,9 @@ func emitMakerUint8Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Uint32(key uint8, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6776,6 +8099,9 @@ func emitMakerETUint8Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Uint32(t typex.EventTime, key uint8, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6789,6 +8115,9 @@ func emitMakerUint8Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Uint64(key uint8, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6802,6 +8131,9 @@ func emitMakerETUint8Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Uint64(t typex.EventTime, key uint8, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6815,6 +8147,9 @@ func emitMakerUint8Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Float32(key uint8, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6828,6 +8163,9 @@ func emitMakerETUint8Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Float32(t typex.EventTime, key uint8, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6841,6 +8179,9 @@ func emitMakerUint8Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Float64(key uint8, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6854,6 +8195,9 @@ func emitMakerETUint8Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Float64(t typex.EventTime, key uint8, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6867,6 +8211,9 @@ func emitMakerUint8Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Typex_T(key uint8, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6880,6 +8227,9 @@ func emitMakerETUint8Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Typex_T(t typex.EventTime, key uint8, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6893,6 +8243,9 @@ func emitMakerUint8Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Typex_U(key uint8, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6906,6 +8259,9 @@ func emitMakerETUint8Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Typex_U(t typex.EventTime, key uint8, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6919,6 +8275,9 @@ func emitMakerUint8Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Typex_V(key uint8, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6932,6 +8291,9 @@ func emitMakerETUint8Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Typex_V(t typex.EventTime, key uint8, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6945,6 +8307,9 @@ func emitMakerUint8Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Typex_W(key uint8, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6958,6 +8323,9 @@ func emitMakerETUint8Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Typex_W(t typex.EventTime, key uint8, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6971,6 +8339,9 @@ func emitMakerUint8Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Typex_X(key uint8, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6984,6 +8355,9 @@ func emitMakerETUint8Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Typex_X(t typex.EventTime, key uint8, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -6997,6 +8371,9 @@ func emitMakerUint8Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Typex_Y(key uint8, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7010,6 +8387,9 @@ func emitMakerETUint8Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Typex_Y(t typex.EventTime, key uint8, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7023,6 +8403,9 @@ func emitMakerUint8Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint8Typex_Z(key uint8, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7036,6 +8419,9 @@ func emitMakerETUint8Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint8Typex_Z(t typex.EventTime, key uint8, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7049,6 +8435,9 @@ func emitMakerUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16(elm uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7062,6 +8451,9 @@ func emitMakerETUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16(t typex.EventTime, elm uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7075,6 +8467,9 @@ func emitMakerUint16ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16ByteSlice(key uint16, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7088,6 +8483,9 @@ func emitMakerETUint16ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16ByteSlice(t typex.EventTime, key uint16, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7101,6 +8499,9 @@ func emitMakerUint16Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Bool(key uint16, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7114,6 +8515,9 @@ func emitMakerETUint16Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Bool(t typex.EventTime, key uint16, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7127,6 +8531,9 @@ func emitMakerUint16String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16String(key uint16, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7140,6 +8547,9 @@ func emitMakerETUint16String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16String(t typex.EventTime, key uint16, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7153,6 +8563,9 @@ func emitMakerUint16Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Int(key uint16, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7166,6 +8579,9 @@ func emitMakerETUint16Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Int(t typex.EventTime, key uint16, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7179,6 +8595,9 @@ func emitMakerUint16Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Int8(key uint16, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7192,6 +8611,9 @@ func emitMakerETUint16Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Int8(t typex.EventTime, key uint16, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7205,6 +8627,9 @@ func emitMakerUint16Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Int16(key uint16, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7218,6 +8643,9 @@ func emitMakerETUint16Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Int16(t typex.EventTime, key uint16, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7231,6 +8659,9 @@ func emitMakerUint16Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Int32(key uint16, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7244,6 +8675,9 @@ func emitMakerETUint16Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Int32(t typex.EventTime, key uint16, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7257,6 +8691,9 @@ func emitMakerUint16Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Int64(key uint16, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7270,6 +8707,9 @@ func emitMakerETUint16Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Int64(t typex.EventTime, key uint16, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7283,6 +8723,9 @@ func emitMakerUint16Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Uint(key uint16, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7296,6 +8739,9 @@ func emitMakerETUint16Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Uint(t typex.EventTime, key uint16, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7309,6 +8755,9 @@ func emitMakerUint16Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Uint8(key uint16, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7322,6 +8771,9 @@ func emitMakerETUint16Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Uint8(t typex.EventTime, key uint16, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7335,6 +8787,9 @@ func emitMakerUint16Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Uint16(key uint16, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7348,6 +8803,9 @@ func emitMakerETUint16Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Uint16(t typex.EventTime, key uint16, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7361,6 +8819,9 @@ func emitMakerUint16Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Uint32(key uint16, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7374,6 +8835,9 @@ func emitMakerETUint16Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Uint32(t typex.EventTime, key uint16, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7387,6 +8851,9 @@ func emitMakerUint16Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Uint64(key uint16, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7400,6 +8867,9 @@ func emitMakerETUint16Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Uint64(t typex.EventTime, key uint16, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7413,6 +8883,9 @@ func emitMakerUint16Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Float32(key uint16, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7426,6 +8899,9 @@ func emitMakerETUint16Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Float32(t typex.EventTime, key uint16, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7439,6 +8915,9 @@ func emitMakerUint16Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Float64(key uint16, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7452,6 +8931,9 @@ func emitMakerETUint16Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Float64(t typex.EventTime, key uint16, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7465,6 +8947,9 @@ func emitMakerUint16Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Typex_T(key uint16, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7478,6 +8963,9 @@ func emitMakerETUint16Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Typex_T(t typex.EventTime, key uint16, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7491,6 +8979,9 @@ func emitMakerUint16Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Typex_U(key uint16, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7504,6 +8995,9 @@ func emitMakerETUint16Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Typex_U(t typex.EventTime, key uint16, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7517,6 +9011,9 @@ func emitMakerUint16Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Typex_V(key uint16, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7530,6 +9027,9 @@ func emitMakerETUint16Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Typex_V(t typex.EventTime, key uint16, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7543,6 +9043,9 @@ func emitMakerUint16Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Typex_W(key uint16, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7556,6 +9059,9 @@ func emitMakerETUint16Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Typex_W(t typex.EventTime, key uint16, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7569,6 +9075,9 @@ func emitMakerUint16Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Typex_X(key uint16, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7582,6 +9091,9 @@ func emitMakerETUint16Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Typex_X(t typex.EventTime, key uint16, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7595,6 +9107,9 @@ func emitMakerUint16Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Typex_Y(key uint16, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7608,6 +9123,9 @@ func emitMakerETUint16Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Typex_Y(t typex.EventTime, key uint16, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7621,6 +9139,9 @@ func emitMakerUint16Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint16Typex_Z(key uint16, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7634,6 +9155,9 @@ func emitMakerETUint16Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint16Typex_Z(t typex.EventTime, key uint16, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7647,6 +9171,9 @@ func emitMakerUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32(elm uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7660,6 +9187,9 @@ func emitMakerETUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32(t typex.EventTime, elm uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7673,6 +9203,9 @@ func emitMakerUint32ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32ByteSlice(key uint32, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7686,6 +9219,9 @@ func emitMakerETUint32ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32ByteSlice(t typex.EventTime, key uint32, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7699,6 +9235,9 @@ func emitMakerUint32Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Bool(key uint32, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7712,6 +9251,9 @@ func emitMakerETUint32Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Bool(t typex.EventTime, key uint32, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7725,6 +9267,9 @@ func emitMakerUint32String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32String(key uint32, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7738,6 +9283,9 @@ func emitMakerETUint32String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32String(t typex.EventTime, key uint32, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7751,6 +9299,9 @@ func emitMakerUint32Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Int(key uint32, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7764,6 +9315,9 @@ func emitMakerETUint32Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Int(t typex.EventTime, key uint32, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7777,6 +9331,9 @@ func emitMakerUint32Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Int8(key uint32, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7790,6 +9347,9 @@ func emitMakerETUint32Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Int8(t typex.EventTime, key uint32, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7803,6 +9363,9 @@ func emitMakerUint32Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Int16(key uint32, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7816,6 +9379,9 @@ func emitMakerETUint32Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Int16(t typex.EventTime, key uint32, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7829,6 +9395,9 @@ func emitMakerUint32Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Int32(key uint32, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7842,6 +9411,9 @@ func emitMakerETUint32Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Int32(t typex.EventTime, key uint32, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7855,6 +9427,9 @@ func emitMakerUint32Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Int64(key uint32, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7868,6 +9443,9 @@ func emitMakerETUint32Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Int64(t typex.EventTime, key uint32, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7881,6 +9459,9 @@ func emitMakerUint32Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Uint(key uint32, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7894,6 +9475,9 @@ func emitMakerETUint32Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Uint(t typex.EventTime, key uint32, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7907,6 +9491,9 @@ func emitMakerUint32Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Uint8(key uint32, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7920,6 +9507,9 @@ func emitMakerETUint32Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Uint8(t typex.EventTime, key uint32, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7933,6 +9523,9 @@ func emitMakerUint32Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Uint16(key uint32, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7946,6 +9539,9 @@ func emitMakerETUint32Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Uint16(t typex.EventTime, key uint32, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7959,6 +9555,9 @@ func emitMakerUint32Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Uint32(key uint32, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7972,6 +9571,9 @@ func emitMakerETUint32Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Uint32(t typex.EventTime, key uint32, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7985,6 +9587,9 @@ func emitMakerUint32Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Uint64(key uint32, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -7998,6 +9603,9 @@ func emitMakerETUint32Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Uint64(t typex.EventTime, key uint32, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8011,6 +9619,9 @@ func emitMakerUint32Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Float32(key uint32, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8024,6 +9635,9 @@ func emitMakerETUint32Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Float32(t typex.EventTime, key uint32, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8037,6 +9651,9 @@ func emitMakerUint32Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Float64(key uint32, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8050,6 +9667,9 @@ func emitMakerETUint32Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Float64(t typex.EventTime, key uint32, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8063,6 +9683,9 @@ func emitMakerUint32Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Typex_T(key uint32, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8076,6 +9699,9 @@ func emitMakerETUint32Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Typex_T(t typex.EventTime, key uint32, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8089,6 +9715,9 @@ func emitMakerUint32Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Typex_U(key uint32, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8102,6 +9731,9 @@ func emitMakerETUint32Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Typex_U(t typex.EventTime, key uint32, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8115,6 +9747,9 @@ func emitMakerUint32Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Typex_V(key uint32, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8128,6 +9763,9 @@ func emitMakerETUint32Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Typex_V(t typex.EventTime, key uint32, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8141,6 +9779,9 @@ func emitMakerUint32Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Typex_W(key uint32, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8154,6 +9795,9 @@ func emitMakerETUint32Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Typex_W(t typex.EventTime, key uint32, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8167,6 +9811,9 @@ func emitMakerUint32Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Typex_X(key uint32, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8180,6 +9827,9 @@ func emitMakerETUint32Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Typex_X(t typex.EventTime, key uint32, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8193,6 +9843,9 @@ func emitMakerUint32Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Typex_Y(key uint32, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8206,6 +9859,9 @@ func emitMakerETUint32Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Typex_Y(t typex.EventTime, key uint32, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8219,6 +9875,9 @@ func emitMakerUint32Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint32Typex_Z(key uint32, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8232,6 +9891,9 @@ func emitMakerETUint32Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint32Typex_Z(t typex.EventTime, key uint32, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8245,6 +9907,9 @@ func emitMakerUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64(elm uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8258,6 +9923,9 @@ func emitMakerETUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64(t typex.EventTime, elm uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8271,6 +9939,9 @@ func emitMakerUint64ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64ByteSlice(key uint64, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8284,6 +9955,9 @@ func emitMakerETUint64ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64ByteSlice(t typex.EventTime, key uint64, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8297,6 +9971,9 @@ func emitMakerUint64Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Bool(key uint64, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8310,6 +9987,9 @@ func emitMakerETUint64Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Bool(t typex.EventTime, key uint64, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8323,6 +10003,9 @@ func emitMakerUint64String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64String(key uint64, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8336,6 +10019,9 @@ func emitMakerETUint64String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64String(t typex.EventTime, key uint64, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8349,6 +10035,9 @@ func emitMakerUint64Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Int(key uint64, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8362,6 +10051,9 @@ func emitMakerETUint64Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Int(t typex.EventTime, key uint64, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8375,6 +10067,9 @@ func emitMakerUint64Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Int8(key uint64, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8388,6 +10083,9 @@ func emitMakerETUint64Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Int8(t typex.EventTime, key uint64, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8401,6 +10099,9 @@ func emitMakerUint64Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Int16(key uint64, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8414,6 +10115,9 @@ func emitMakerETUint64Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Int16(t typex.EventTime, key uint64, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8427,6 +10131,9 @@ func emitMakerUint64Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Int32(key uint64, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8440,6 +10147,9 @@ func emitMakerETUint64Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Int32(t typex.EventTime, key uint64, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8453,6 +10163,9 @@ func emitMakerUint64Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Int64(key uint64, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8466,6 +10179,9 @@ func emitMakerETUint64Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Int64(t typex.EventTime, key uint64, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8479,6 +10195,9 @@ func emitMakerUint64Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Uint(key uint64, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8492,6 +10211,9 @@ func emitMakerETUint64Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Uint(t typex.EventTime, key uint64, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8505,6 +10227,9 @@ func emitMakerUint64Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Uint8(key uint64, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8518,6 +10243,9 @@ func emitMakerETUint64Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Uint8(t typex.EventTime, key uint64, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8531,6 +10259,9 @@ func emitMakerUint64Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Uint16(key uint64, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8544,6 +10275,9 @@ func emitMakerETUint64Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Uint16(t typex.EventTime, key uint64, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8557,6 +10291,9 @@ func emitMakerUint64Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Uint32(key uint64, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8570,6 +10307,9 @@ func emitMakerETUint64Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Uint32(t typex.EventTime, key uint64, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8583,6 +10323,9 @@ func emitMakerUint64Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Uint64(key uint64, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8596,6 +10339,9 @@ func emitMakerETUint64Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Uint64(t typex.EventTime, key uint64, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8609,6 +10355,9 @@ func emitMakerUint64Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Float32(key uint64, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8622,6 +10371,9 @@ func emitMakerETUint64Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Float32(t typex.EventTime, key uint64, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8635,6 +10387,9 @@ func emitMakerUint64Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Float64(key uint64, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8648,6 +10403,9 @@ func emitMakerETUint64Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Float64(t typex.EventTime, key uint64, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8661,6 +10419,9 @@ func emitMakerUint64Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Typex_T(key uint64, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8674,6 +10435,9 @@ func emitMakerETUint64Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Typex_T(t typex.EventTime, key uint64, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8687,6 +10451,9 @@ func emitMakerUint64Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Typex_U(key uint64, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8700,6 +10467,9 @@ func emitMakerETUint64Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Typex_U(t typex.EventTime, key uint64, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8713,6 +10483,9 @@ func emitMakerUint64Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Typex_V(key uint64, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8726,6 +10499,9 @@ func emitMakerETUint64Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Typex_V(t typex.EventTime, key uint64, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8739,6 +10515,9 @@ func emitMakerUint64Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Typex_W(key uint64, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8752,6 +10531,9 @@ func emitMakerETUint64Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Typex_W(t typex.EventTime, key uint64, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8765,6 +10547,9 @@ func emitMakerUint64Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Typex_X(key uint64, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8778,6 +10563,9 @@ func emitMakerETUint64Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Typex_X(t typex.EventTime, key uint64, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8791,6 +10579,9 @@ func emitMakerUint64Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Typex_Y(key uint64, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8804,6 +10595,9 @@ func emitMakerETUint64Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Typex_Y(t typex.EventTime, key uint64, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8817,6 +10611,9 @@ func emitMakerUint64Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeUint64Typex_Z(key uint64, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8830,6 +10627,9 @@ func emitMakerETUint64Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETUint64Typex_Z(t typex.EventTime, key uint64, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8843,6 +10643,9 @@ func emitMakerFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32(elm float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8856,6 +10659,9 @@ func emitMakerETFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32(t typex.EventTime, elm float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8869,6 +10675,9 @@ func emitMakerFloat32ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32ByteSlice(key float32, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8882,6 +10691,9 @@ func emitMakerETFloat32ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32ByteSlice(t typex.EventTime, key float32, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8895,6 +10707,9 @@ func emitMakerFloat32Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Bool(key float32, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8908,6 +10723,9 @@ func emitMakerETFloat32Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Bool(t typex.EventTime, key float32, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8921,6 +10739,9 @@ func emitMakerFloat32String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32String(key float32, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8934,6 +10755,9 @@ func emitMakerETFloat32String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32String(t typex.EventTime, key float32, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8947,6 +10771,9 @@ func emitMakerFloat32Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Int(key float32, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8960,6 +10787,9 @@ func emitMakerETFloat32Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Int(t typex.EventTime, key float32, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8973,6 +10803,9 @@ func emitMakerFloat32Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Int8(key float32, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8986,6 +10819,9 @@ func emitMakerETFloat32Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Int8(t typex.EventTime, key float32, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -8999,6 +10835,9 @@ func emitMakerFloat32Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Int16(key float32, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9012,6 +10851,9 @@ func emitMakerETFloat32Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Int16(t typex.EventTime, key float32, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9025,6 +10867,9 @@ func emitMakerFloat32Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Int32(key float32, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9038,6 +10883,9 @@ func emitMakerETFloat32Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Int32(t typex.EventTime, key float32, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9051,6 +10899,9 @@ func emitMakerFloat32Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Int64(key float32, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9064,6 +10915,9 @@ func emitMakerETFloat32Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Int64(t typex.EventTime, key float32, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9077,6 +10931,9 @@ func emitMakerFloat32Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Uint(key float32, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9090,6 +10947,9 @@ func emitMakerETFloat32Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Uint(t typex.EventTime, key float32, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9103,6 +10963,9 @@ func emitMakerFloat32Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Uint8(key float32, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9116,6 +10979,9 @@ func emitMakerETFloat32Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Uint8(t typex.EventTime, key float32, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9129,6 +10995,9 @@ func emitMakerFloat32Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Uint16(key float32, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9142,6 +11011,9 @@ func emitMakerETFloat32Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Uint16(t typex.EventTime, key float32, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9155,6 +11027,9 @@ func emitMakerFloat32Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Uint32(key float32, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9168,6 +11043,9 @@ func emitMakerETFloat32Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Uint32(t typex.EventTime, key float32, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9181,6 +11059,9 @@ func emitMakerFloat32Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Uint64(key float32, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9194,6 +11075,9 @@ func emitMakerETFloat32Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Uint64(t typex.EventTime, key float32, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9207,6 +11091,9 @@ func emitMakerFloat32Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Float32(key float32, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9220,6 +11107,9 @@ func emitMakerETFloat32Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Float32(t typex.EventTime, key float32, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9233,6 +11123,9 @@ func emitMakerFloat32Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Float64(key float32, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9246,6 +11139,9 @@ func emitMakerETFloat32Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Float64(t typex.EventTime, key float32, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9259,6 +11155,9 @@ func emitMakerFloat32Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Typex_T(key float32, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9272,6 +11171,9 @@ func emitMakerETFloat32Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Typex_T(t typex.EventTime, key float32, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9285,6 +11187,9 @@ func emitMakerFloat32Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Typex_U(key float32, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9298,6 +11203,9 @@ func emitMakerETFloat32Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Typex_U(t typex.EventTime, key float32, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9311,6 +11219,9 @@ func emitMakerFloat32Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Typex_V(key float32, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9324,6 +11235,9 @@ func emitMakerETFloat32Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Typex_V(t typex.EventTime, key float32, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9337,6 +11251,9 @@ func emitMakerFloat32Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Typex_W(key float32, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9350,6 +11267,9 @@ func emitMakerETFloat32Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Typex_W(t typex.EventTime, key float32, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9363,6 +11283,9 @@ func emitMakerFloat32Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Typex_X(key float32, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9376,6 +11299,9 @@ func emitMakerETFloat32Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Typex_X(t typex.EventTime, key float32, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9389,6 +11315,9 @@ func emitMakerFloat32Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Typex_Y(key float32, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9402,6 +11331,9 @@ func emitMakerETFloat32Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Typex_Y(t typex.EventTime, key float32, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9415,6 +11347,9 @@ func emitMakerFloat32Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat32Typex_Z(key float32, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9428,6 +11363,9 @@ func emitMakerETFloat32Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat32Typex_Z(t typex.EventTime, key float32, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9441,6 +11379,9 @@ func emitMakerFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64(elm float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9454,6 +11395,9 @@ func emitMakerETFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64(t typex.EventTime, elm float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9467,6 +11411,9 @@ func emitMakerFloat64ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64ByteSlice(key float64, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9480,6 +11427,9 @@ func emitMakerETFloat64ByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64ByteSlice(t typex.EventTime, key float64, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9493,6 +11443,9 @@ func emitMakerFloat64Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Bool(key float64, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9506,6 +11459,9 @@ func emitMakerETFloat64Bool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Bool(t typex.EventTime, key float64, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9519,6 +11475,9 @@ func emitMakerFloat64String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64String(key float64, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9532,6 +11491,9 @@ func emitMakerETFloat64String(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64String(t typex.EventTime, key float64, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9545,6 +11507,9 @@ func emitMakerFloat64Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Int(key float64, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9558,6 +11523,9 @@ func emitMakerETFloat64Int(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Int(t typex.EventTime, key float64, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9571,6 +11539,9 @@ func emitMakerFloat64Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Int8(key float64, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9584,6 +11555,9 @@ func emitMakerETFloat64Int8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Int8(t typex.EventTime, key float64, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9597,6 +11571,9 @@ func emitMakerFloat64Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Int16(key float64, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9610,6 +11587,9 @@ func emitMakerETFloat64Int16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Int16(t typex.EventTime, key float64, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9623,6 +11603,9 @@ func emitMakerFloat64Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Int32(key float64, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9636,6 +11619,9 @@ func emitMakerETFloat64Int32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Int32(t typex.EventTime, key float64, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9649,6 +11635,9 @@ func emitMakerFloat64Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Int64(key float64, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9662,6 +11651,9 @@ func emitMakerETFloat64Int64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Int64(t typex.EventTime, key float64, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9675,6 +11667,9 @@ func emitMakerFloat64Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Uint(key float64, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9688,6 +11683,9 @@ func emitMakerETFloat64Uint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Uint(t typex.EventTime, key float64, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9701,6 +11699,9 @@ func emitMakerFloat64Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Uint8(key float64, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9714,6 +11715,9 @@ func emitMakerETFloat64Uint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Uint8(t typex.EventTime, key float64, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9727,6 +11731,9 @@ func emitMakerFloat64Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Uint16(key float64, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9740,6 +11747,9 @@ func emitMakerETFloat64Uint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Uint16(t typex.EventTime, key float64, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9753,6 +11763,9 @@ func emitMakerFloat64Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Uint32(key float64, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9766,6 +11779,9 @@ func emitMakerETFloat64Uint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Uint32(t typex.EventTime, key float64, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9779,6 +11795,9 @@ func emitMakerFloat64Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Uint64(key float64, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9792,6 +11811,9 @@ func emitMakerETFloat64Uint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Uint64(t typex.EventTime, key float64, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9805,6 +11827,9 @@ func emitMakerFloat64Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Float32(key float64, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9818,6 +11843,9 @@ func emitMakerETFloat64Float32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Float32(t typex.EventTime, key float64, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9831,6 +11859,9 @@ func emitMakerFloat64Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Float64(key float64, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9844,6 +11875,9 @@ func emitMakerETFloat64Float64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Float64(t typex.EventTime, key float64, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9857,6 +11891,9 @@ func emitMakerFloat64Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Typex_T(key float64, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9870,6 +11907,9 @@ func emitMakerETFloat64Typex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Typex_T(t typex.EventTime, key float64, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9883,6 +11923,9 @@ func emitMakerFloat64Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Typex_U(key float64, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9896,6 +11939,9 @@ func emitMakerETFloat64Typex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Typex_U(t typex.EventTime, key float64, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9909,6 +11955,9 @@ func emitMakerFloat64Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Typex_V(key float64, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9922,6 +11971,9 @@ func emitMakerETFloat64Typex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Typex_V(t typex.EventTime, key float64, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9935,6 +11987,9 @@ func emitMakerFloat64Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Typex_W(key float64, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9948,6 +12003,9 @@ func emitMakerETFloat64Typex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Typex_W(t typex.EventTime, key float64, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9961,6 +12019,9 @@ func emitMakerFloat64Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Typex_X(key float64, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9974,6 +12035,9 @@ func emitMakerETFloat64Typex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Typex_X(t typex.EventTime, key float64, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -9987,6 +12051,9 @@ func emitMakerFloat64Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Typex_Y(key float64, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10000,6 +12067,9 @@ func emitMakerETFloat64Typex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Typex_Y(t typex.EventTime, key float64, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10013,6 +12083,9 @@ func emitMakerFloat64Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeFloat64Typex_Z(key float64, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10026,6 +12099,9 @@ func emitMakerETFloat64Typex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETFloat64Typex_Z(t typex.EventTime, key float64, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10039,6 +12115,9 @@ func emitMakerTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_T(elm typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10052,6 +12131,9 @@ func emitMakerETTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_T(t typex.EventTime, elm typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10065,6 +12147,9 @@ func emitMakerTypex_TByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TByteSlice(key typex.T, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10078,6 +12163,9 @@ func emitMakerETTypex_TByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TByteSlice(t typex.EventTime, key typex.T, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10091,6 +12179,9 @@ func emitMakerTypex_TBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TBool(key typex.T, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10104,6 +12195,9 @@ func emitMakerETTypex_TBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TBool(t typex.EventTime, key typex.T, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10117,6 +12211,9 @@ func emitMakerTypex_TString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TString(key typex.T, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10130,6 +12227,9 @@ func emitMakerETTypex_TString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TString(t typex.EventTime, key typex.T, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10143,6 +12243,9 @@ func emitMakerTypex_TInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TInt(key typex.T, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10156,6 +12259,9 @@ func emitMakerETTypex_TInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TInt(t typex.EventTime, key typex.T, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10169,6 +12275,9 @@ func emitMakerTypex_TInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TInt8(key typex.T, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10182,6 +12291,9 @@ func emitMakerETTypex_TInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TInt8(t typex.EventTime, key typex.T, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10195,6 +12307,9 @@ func emitMakerTypex_TInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TInt16(key typex.T, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10208,6 +12323,9 @@ func emitMakerETTypex_TInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TInt16(t typex.EventTime, key typex.T, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10221,6 +12339,9 @@ func emitMakerTypex_TInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TInt32(key typex.T, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10234,6 +12355,9 @@ func emitMakerETTypex_TInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TInt32(t typex.EventTime, key typex.T, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10247,6 +12371,9 @@ func emitMakerTypex_TInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TInt64(key typex.T, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10260,6 +12387,9 @@ func emitMakerETTypex_TInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TInt64(t typex.EventTime, key typex.T, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10273,6 +12403,9 @@ func emitMakerTypex_TUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TUint(key typex.T, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10286,6 +12419,9 @@ func emitMakerETTypex_TUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TUint(t typex.EventTime, key typex.T, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10299,6 +12435,9 @@ func emitMakerTypex_TUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TUint8(key typex.T, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10312,6 +12451,9 @@ func emitMakerETTypex_TUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TUint8(t typex.EventTime, key typex.T, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10325,6 +12467,9 @@ func emitMakerTypex_TUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TUint16(key typex.T, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10338,6 +12483,9 @@ func emitMakerETTypex_TUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TUint16(t typex.EventTime, key typex.T, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10351,6 +12499,9 @@ func emitMakerTypex_TUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TUint32(key typex.T, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10364,6 +12515,9 @@ func emitMakerETTypex_TUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TUint32(t typex.EventTime, key typex.T, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10377,6 +12531,9 @@ func emitMakerTypex_TUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TUint64(key typex.T, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10390,6 +12547,9 @@ func emitMakerETTypex_TUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TUint64(t typex.EventTime, key typex.T, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10403,6 +12563,9 @@ func emitMakerTypex_TFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TFloat32(key typex.T, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10416,6 +12579,9 @@ func emitMakerETTypex_TFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TFloat32(t typex.EventTime, key typex.T, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10429,6 +12595,9 @@ func emitMakerTypex_TFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TFloat64(key typex.T, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10442,6 +12611,9 @@ func emitMakerETTypex_TFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TFloat64(t typex.EventTime, key typex.T, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10455,6 +12627,9 @@ func emitMakerTypex_TTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TTypex_T(key typex.T, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10468,6 +12643,9 @@ func emitMakerETTypex_TTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TTypex_T(t typex.EventTime, key typex.T, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10481,6 +12659,9 @@ func emitMakerTypex_TTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TTypex_U(key typex.T, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10494,6 +12675,9 @@ func emitMakerETTypex_TTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TTypex_U(t typex.EventTime, key typex.T, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10507,6 +12691,9 @@ func emitMakerTypex_TTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TTypex_V(key typex.T, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10520,6 +12707,9 @@ func emitMakerETTypex_TTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TTypex_V(t typex.EventTime, key typex.T, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10533,6 +12723,9 @@ func emitMakerTypex_TTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TTypex_W(key typex.T, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10546,6 +12739,9 @@ func emitMakerETTypex_TTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TTypex_W(t typex.EventTime, key typex.T, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10559,6 +12755,9 @@ func emitMakerTypex_TTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TTypex_X(key typex.T, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10572,6 +12771,9 @@ func emitMakerETTypex_TTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TTypex_X(t typex.EventTime, key typex.T, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10585,6 +12787,9 @@ func emitMakerTypex_TTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TTypex_Y(key typex.T, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10598,6 +12803,9 @@ func emitMakerETTypex_TTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TTypex_Y(t typex.EventTime, key typex.T, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10611,6 +12819,9 @@ func emitMakerTypex_TTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_TTypex_Z(key typex.T, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10624,6 +12835,9 @@ func emitMakerETTypex_TTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_TTypex_Z(t typex.EventTime, key typex.T, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10637,6 +12851,9 @@ func emitMakerTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_U(elm typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10650,6 +12867,9 @@ func emitMakerETTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_U(t typex.EventTime, elm typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10663,6 +12883,9 @@ func emitMakerTypex_UByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UByteSlice(key typex.U, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10676,6 +12899,9 @@ func emitMakerETTypex_UByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UByteSlice(t typex.EventTime, key typex.U, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10689,6 +12915,9 @@ func emitMakerTypex_UBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UBool(key typex.U, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10702,6 +12931,9 @@ func emitMakerETTypex_UBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UBool(t typex.EventTime, key typex.U, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10715,6 +12947,9 @@ func emitMakerTypex_UString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UString(key typex.U, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10728,6 +12963,9 @@ func emitMakerETTypex_UString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UString(t typex.EventTime, key typex.U, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10741,6 +12979,9 @@ func emitMakerTypex_UInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UInt(key typex.U, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10754,6 +12995,9 @@ func emitMakerETTypex_UInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UInt(t typex.EventTime, key typex.U, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10767,6 +13011,9 @@ func emitMakerTypex_UInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UInt8(key typex.U, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10780,6 +13027,9 @@ func emitMakerETTypex_UInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UInt8(t typex.EventTime, key typex.U, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10793,6 +13043,9 @@ func emitMakerTypex_UInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UInt16(key typex.U, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10806,6 +13059,9 @@ func emitMakerETTypex_UInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UInt16(t typex.EventTime, key typex.U, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10819,6 +13075,9 @@ func emitMakerTypex_UInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UInt32(key typex.U, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10832,6 +13091,9 @@ func emitMakerETTypex_UInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UInt32(t typex.EventTime, key typex.U, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10845,6 +13107,9 @@ func emitMakerTypex_UInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UInt64(key typex.U, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10858,6 +13123,9 @@ func emitMakerETTypex_UInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UInt64(t typex.EventTime, key typex.U, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10871,6 +13139,9 @@ func emitMakerTypex_UUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UUint(key typex.U, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10884,6 +13155,9 @@ func emitMakerETTypex_UUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UUint(t typex.EventTime, key typex.U, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10897,6 +13171,9 @@ func emitMakerTypex_UUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UUint8(key typex.U, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10910,6 +13187,9 @@ func emitMakerETTypex_UUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UUint8(t typex.EventTime, key typex.U, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10923,6 +13203,9 @@ func emitMakerTypex_UUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UUint16(key typex.U, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10936,6 +13219,9 @@ func emitMakerETTypex_UUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UUint16(t typex.EventTime, key typex.U, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10949,6 +13235,9 @@ func emitMakerTypex_UUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UUint32(key typex.U, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10962,6 +13251,9 @@ func emitMakerETTypex_UUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UUint32(t typex.EventTime, key typex.U, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10975,6 +13267,9 @@ func emitMakerTypex_UUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UUint64(key typex.U, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -10988,6 +13283,9 @@ func emitMakerETTypex_UUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UUint64(t typex.EventTime, key typex.U, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11001,6 +13299,9 @@ func emitMakerTypex_UFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UFloat32(key typex.U, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11014,6 +13315,9 @@ func emitMakerETTypex_UFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UFloat32(t typex.EventTime, key typex.U, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11027,6 +13331,9 @@ func emitMakerTypex_UFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UFloat64(key typex.U, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11040,6 +13347,9 @@ func emitMakerETTypex_UFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UFloat64(t typex.EventTime, key typex.U, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11053,6 +13363,9 @@ func emitMakerTypex_UTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UTypex_T(key typex.U, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11066,6 +13379,9 @@ func emitMakerETTypex_UTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UTypex_T(t typex.EventTime, key typex.U, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11079,6 +13395,9 @@ func emitMakerTypex_UTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UTypex_U(key typex.U, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11092,6 +13411,9 @@ func emitMakerETTypex_UTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UTypex_U(t typex.EventTime, key typex.U, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11105,6 +13427,9 @@ func emitMakerTypex_UTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UTypex_V(key typex.U, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11118,6 +13443,9 @@ func emitMakerETTypex_UTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UTypex_V(t typex.EventTime, key typex.U, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11131,6 +13459,9 @@ func emitMakerTypex_UTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UTypex_W(key typex.U, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11144,6 +13475,9 @@ func emitMakerETTypex_UTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UTypex_W(t typex.EventTime, key typex.U, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11157,6 +13491,9 @@ func emitMakerTypex_UTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UTypex_X(key typex.U, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11170,6 +13507,9 @@ func emitMakerETTypex_UTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UTypex_X(t typex.EventTime, key typex.U, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11183,6 +13523,9 @@ func emitMakerTypex_UTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UTypex_Y(key typex.U, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11196,6 +13539,9 @@ func emitMakerETTypex_UTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UTypex_Y(t typex.EventTime, key typex.U, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11209,6 +13555,9 @@ func emitMakerTypex_UTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_UTypex_Z(key typex.U, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11222,6 +13571,9 @@ func emitMakerETTypex_UTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_UTypex_Z(t typex.EventTime, key typex.U, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11235,6 +13587,9 @@ func emitMakerTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_V(elm typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11248,6 +13603,9 @@ func emitMakerETTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_V(t typex.EventTime, elm typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11261,6 +13619,9 @@ func emitMakerTypex_VByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VByteSlice(key typex.V, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11274,6 +13635,9 @@ func emitMakerETTypex_VByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VByteSlice(t typex.EventTime, key typex.V, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11287,6 +13651,9 @@ func emitMakerTypex_VBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VBool(key typex.V, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11300,6 +13667,9 @@ func emitMakerETTypex_VBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VBool(t typex.EventTime, key typex.V, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11313,6 +13683,9 @@ func emitMakerTypex_VString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VString(key typex.V, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11326,6 +13699,9 @@ func emitMakerETTypex_VString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VString(t typex.EventTime, key typex.V, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11339,6 +13715,9 @@ func emitMakerTypex_VInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VInt(key typex.V, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11352,6 +13731,9 @@ func emitMakerETTypex_VInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VInt(t typex.EventTime, key typex.V, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11365,6 +13747,9 @@ func emitMakerTypex_VInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VInt8(key typex.V, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11378,6 +13763,9 @@ func emitMakerETTypex_VInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VInt8(t typex.EventTime, key typex.V, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11391,6 +13779,9 @@ func emitMakerTypex_VInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VInt16(key typex.V, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11404,6 +13795,9 @@ func emitMakerETTypex_VInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VInt16(t typex.EventTime, key typex.V, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11417,6 +13811,9 @@ func emitMakerTypex_VInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VInt32(key typex.V, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11430,6 +13827,9 @@ func emitMakerETTypex_VInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VInt32(t typex.EventTime, key typex.V, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11443,6 +13843,9 @@ func emitMakerTypex_VInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VInt64(key typex.V, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11456,6 +13859,9 @@ func emitMakerETTypex_VInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VInt64(t typex.EventTime, key typex.V, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11469,6 +13875,9 @@ func emitMakerTypex_VUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VUint(key typex.V, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11482,6 +13891,9 @@ func emitMakerETTypex_VUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VUint(t typex.EventTime, key typex.V, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11495,6 +13907,9 @@ func emitMakerTypex_VUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VUint8(key typex.V, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11508,6 +13923,9 @@ func emitMakerETTypex_VUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VUint8(t typex.EventTime, key typex.V, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11521,6 +13939,9 @@ func emitMakerTypex_VUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VUint16(key typex.V, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11534,6 +13955,9 @@ func emitMakerETTypex_VUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VUint16(t typex.EventTime, key typex.V, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11547,6 +13971,9 @@ func emitMakerTypex_VUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VUint32(key typex.V, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11560,6 +13987,9 @@ func emitMakerETTypex_VUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VUint32(t typex.EventTime, key typex.V, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11573,6 +14003,9 @@ func emitMakerTypex_VUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VUint64(key typex.V, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11586,6 +14019,9 @@ func emitMakerETTypex_VUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VUint64(t typex.EventTime, key typex.V, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11599,6 +14035,9 @@ func emitMakerTypex_VFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VFloat32(key typex.V, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11612,6 +14051,9 @@ func emitMakerETTypex_VFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VFloat32(t typex.EventTime, key typex.V, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11625,6 +14067,9 @@ func emitMakerTypex_VFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VFloat64(key typex.V, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11638,6 +14083,9 @@ func emitMakerETTypex_VFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VFloat64(t typex.EventTime, key typex.V, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11651,6 +14099,9 @@ func emitMakerTypex_VTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VTypex_T(key typex.V, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11664,6 +14115,9 @@ func emitMakerETTypex_VTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VTypex_T(t typex.EventTime, key typex.V, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11677,6 +14131,9 @@ func emitMakerTypex_VTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VTypex_U(key typex.V, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11690,6 +14147,9 @@ func emitMakerETTypex_VTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VTypex_U(t typex.EventTime, key typex.V, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11703,6 +14163,9 @@ func emitMakerTypex_VTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VTypex_V(key typex.V, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11716,6 +14179,9 @@ func emitMakerETTypex_VTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VTypex_V(t typex.EventTime, key typex.V, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11729,6 +14195,9 @@ func emitMakerTypex_VTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VTypex_W(key typex.V, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11742,6 +14211,9 @@ func emitMakerETTypex_VTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VTypex_W(t typex.EventTime, key typex.V, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11755,6 +14227,9 @@ func emitMakerTypex_VTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VTypex_X(key typex.V, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11768,6 +14243,9 @@ func emitMakerETTypex_VTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VTypex_X(t typex.EventTime, key typex.V, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11781,6 +14259,9 @@ func emitMakerTypex_VTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VTypex_Y(key typex.V, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11794,6 +14275,9 @@ func emitMakerETTypex_VTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VTypex_Y(t typex.EventTime, key typex.V, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11807,6 +14291,9 @@ func emitMakerTypex_VTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_VTypex_Z(key typex.V, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11820,6 +14307,9 @@ func emitMakerETTypex_VTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_VTypex_Z(t typex.EventTime, key typex.V, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11833,6 +14323,9 @@ func emitMakerTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_W(elm typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11846,6 +14339,9 @@ func emitMakerETTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_W(t typex.EventTime, elm typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11859,6 +14355,9 @@ func emitMakerTypex_WByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WByteSlice(key typex.W, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11872,6 +14371,9 @@ func emitMakerETTypex_WByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WByteSlice(t typex.EventTime, key typex.W, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11885,6 +14387,9 @@ func emitMakerTypex_WBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WBool(key typex.W, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11898,6 +14403,9 @@ func emitMakerETTypex_WBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WBool(t typex.EventTime, key typex.W, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11911,6 +14419,9 @@ func emitMakerTypex_WString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WString(key typex.W, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11924,6 +14435,9 @@ func emitMakerETTypex_WString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WString(t typex.EventTime, key typex.W, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11937,6 +14451,9 @@ func emitMakerTypex_WInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WInt(key typex.W, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11950,6 +14467,9 @@ func emitMakerETTypex_WInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WInt(t typex.EventTime, key typex.W, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11963,6 +14483,9 @@ func emitMakerTypex_WInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WInt8(key typex.W, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11976,6 +14499,9 @@ func emitMakerETTypex_WInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WInt8(t typex.EventTime, key typex.W, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -11989,6 +14515,9 @@ func emitMakerTypex_WInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WInt16(key typex.W, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12002,6 +14531,9 @@ func emitMakerETTypex_WInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WInt16(t typex.EventTime, key typex.W, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12015,6 +14547,9 @@ func emitMakerTypex_WInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WInt32(key typex.W, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12028,6 +14563,9 @@ func emitMakerETTypex_WInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WInt32(t typex.EventTime, key typex.W, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12041,6 +14579,9 @@ func emitMakerTypex_WInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WInt64(key typex.W, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12054,6 +14595,9 @@ func emitMakerETTypex_WInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WInt64(t typex.EventTime, key typex.W, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12067,6 +14611,9 @@ func emitMakerTypex_WUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WUint(key typex.W, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12080,6 +14627,9 @@ func emitMakerETTypex_WUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WUint(t typex.EventTime, key typex.W, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12093,6 +14643,9 @@ func emitMakerTypex_WUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WUint8(key typex.W, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12106,6 +14659,9 @@ func emitMakerETTypex_WUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WUint8(t typex.EventTime, key typex.W, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12119,6 +14675,9 @@ func emitMakerTypex_WUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WUint16(key typex.W, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12132,6 +14691,9 @@ func emitMakerETTypex_WUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WUint16(t typex.EventTime, key typex.W, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12145,6 +14707,9 @@ func emitMakerTypex_WUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WUint32(key typex.W, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12158,6 +14723,9 @@ func emitMakerETTypex_WUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WUint32(t typex.EventTime, key typex.W, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12171,6 +14739,9 @@ func emitMakerTypex_WUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WUint64(key typex.W, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12184,6 +14755,9 @@ func emitMakerETTypex_WUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WUint64(t typex.EventTime, key typex.W, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12197,6 +14771,9 @@ func emitMakerTypex_WFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WFloat32(key typex.W, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12210,6 +14787,9 @@ func emitMakerETTypex_WFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WFloat32(t typex.EventTime, key typex.W, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12223,6 +14803,9 @@ func emitMakerTypex_WFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WFloat64(key typex.W, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12236,6 +14819,9 @@ func emitMakerETTypex_WFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WFloat64(t typex.EventTime, key typex.W, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12249,6 +14835,9 @@ func emitMakerTypex_WTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WTypex_T(key typex.W, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12262,6 +14851,9 @@ func emitMakerETTypex_WTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WTypex_T(t typex.EventTime, key typex.W, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12275,6 +14867,9 @@ func emitMakerTypex_WTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WTypex_U(key typex.W, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12288,6 +14883,9 @@ func emitMakerETTypex_WTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WTypex_U(t typex.EventTime, key typex.W, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12301,6 +14899,9 @@ func emitMakerTypex_WTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WTypex_V(key typex.W, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12314,6 +14915,9 @@ func emitMakerETTypex_WTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WTypex_V(t typex.EventTime, key typex.W, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12327,6 +14931,9 @@ func emitMakerTypex_WTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WTypex_W(key typex.W, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12340,6 +14947,9 @@ func emitMakerETTypex_WTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WTypex_W(t typex.EventTime, key typex.W, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12353,6 +14963,9 @@ func emitMakerTypex_WTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WTypex_X(key typex.W, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12366,6 +14979,9 @@ func emitMakerETTypex_WTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WTypex_X(t typex.EventTime, key typex.W, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12379,6 +14995,9 @@ func emitMakerTypex_WTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WTypex_Y(key typex.W, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12392,6 +15011,9 @@ func emitMakerETTypex_WTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WTypex_Y(t typex.EventTime, key typex.W, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12405,6 +15027,9 @@ func emitMakerTypex_WTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_WTypex_Z(key typex.W, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12418,6 +15043,9 @@ func emitMakerETTypex_WTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_WTypex_Z(t typex.EventTime, key typex.W, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12431,6 +15059,9 @@ func emitMakerTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_X(elm typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12444,6 +15075,9 @@ func emitMakerETTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_X(t typex.EventTime, elm typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12457,6 +15091,9 @@ func emitMakerTypex_XByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XByteSlice(key typex.X, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12470,6 +15107,9 @@ func emitMakerETTypex_XByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XByteSlice(t typex.EventTime, key typex.X, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12483,6 +15123,9 @@ func emitMakerTypex_XBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XBool(key typex.X, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12496,6 +15139,9 @@ func emitMakerETTypex_XBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XBool(t typex.EventTime, key typex.X, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12509,6 +15155,9 @@ func emitMakerTypex_XString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XString(key typex.X, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12522,6 +15171,9 @@ func emitMakerETTypex_XString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XString(t typex.EventTime, key typex.X, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12535,6 +15187,9 @@ func emitMakerTypex_XInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XInt(key typex.X, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12548,6 +15203,9 @@ func emitMakerETTypex_XInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XInt(t typex.EventTime, key typex.X, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12561,6 +15219,9 @@ func emitMakerTypex_XInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XInt8(key typex.X, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12574,6 +15235,9 @@ func emitMakerETTypex_XInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XInt8(t typex.EventTime, key typex.X, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12587,6 +15251,9 @@ func emitMakerTypex_XInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XInt16(key typex.X, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12600,6 +15267,9 @@ func emitMakerETTypex_XInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XInt16(t typex.EventTime, key typex.X, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12613,6 +15283,9 @@ func emitMakerTypex_XInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XInt32(key typex.X, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12626,6 +15299,9 @@ func emitMakerETTypex_XInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XInt32(t typex.EventTime, key typex.X, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12639,6 +15315,9 @@ func emitMakerTypex_XInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XInt64(key typex.X, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12652,6 +15331,9 @@ func emitMakerETTypex_XInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XInt64(t typex.EventTime, key typex.X, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12665,6 +15347,9 @@ func emitMakerTypex_XUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XUint(key typex.X, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12678,6 +15363,9 @@ func emitMakerETTypex_XUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XUint(t typex.EventTime, key typex.X, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12691,6 +15379,9 @@ func emitMakerTypex_XUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XUint8(key typex.X, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12704,6 +15395,9 @@ func emitMakerETTypex_XUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XUint8(t typex.EventTime, key typex.X, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12717,6 +15411,9 @@ func emitMakerTypex_XUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XUint16(key typex.X, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12730,6 +15427,9 @@ func emitMakerETTypex_XUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XUint16(t typex.EventTime, key typex.X, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12743,6 +15443,9 @@ func emitMakerTypex_XUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XUint32(key typex.X, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12756,6 +15459,9 @@ func emitMakerETTypex_XUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XUint32(t typex.EventTime, key typex.X, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12769,6 +15475,9 @@ func emitMakerTypex_XUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XUint64(key typex.X, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12782,6 +15491,9 @@ func emitMakerETTypex_XUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XUint64(t typex.EventTime, key typex.X, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12795,6 +15507,9 @@ func emitMakerTypex_XFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XFloat32(key typex.X, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12808,6 +15523,9 @@ func emitMakerETTypex_XFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XFloat32(t typex.EventTime, key typex.X, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12821,6 +15539,9 @@ func emitMakerTypex_XFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XFloat64(key typex.X, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12834,6 +15555,9 @@ func emitMakerETTypex_XFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XFloat64(t typex.EventTime, key typex.X, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12847,6 +15571,9 @@ func emitMakerTypex_XTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XTypex_T(key typex.X, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12860,6 +15587,9 @@ func emitMakerETTypex_XTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XTypex_T(t typex.EventTime, key typex.X, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12873,6 +15603,9 @@ func emitMakerTypex_XTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XTypex_U(key typex.X, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12886,6 +15619,9 @@ func emitMakerETTypex_XTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XTypex_U(t typex.EventTime, key typex.X, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12899,6 +15635,9 @@ func emitMakerTypex_XTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XTypex_V(key typex.X, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12912,6 +15651,9 @@ func emitMakerETTypex_XTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XTypex_V(t typex.EventTime, key typex.X, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12925,6 +15667,9 @@ func emitMakerTypex_XTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XTypex_W(key typex.X, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12938,6 +15683,9 @@ func emitMakerETTypex_XTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XTypex_W(t typex.EventTime, key typex.X, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12951,6 +15699,9 @@ func emitMakerTypex_XTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XTypex_X(key typex.X, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12964,6 +15715,9 @@ func emitMakerETTypex_XTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XTypex_X(t typex.EventTime, key typex.X, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12977,6 +15731,9 @@ func emitMakerTypex_XTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XTypex_Y(key typex.X, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -12990,6 +15747,9 @@ func emitMakerETTypex_XTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XTypex_Y(t typex.EventTime, key typex.X, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13003,6 +15763,9 @@ func emitMakerTypex_XTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_XTypex_Z(key typex.X, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13016,6 +15779,9 @@ func emitMakerETTypex_XTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_XTypex_Z(t typex.EventTime, key typex.X, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13029,6 +15795,9 @@ func emitMakerTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_Y(elm typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13042,6 +15811,9 @@ func emitMakerETTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_Y(t typex.EventTime, elm typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13055,6 +15827,9 @@ func emitMakerTypex_YByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YByteSlice(key typex.Y, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13068,6 +15843,9 @@ func emitMakerETTypex_YByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YByteSlice(t typex.EventTime, key typex.Y, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13081,6 +15859,9 @@ func emitMakerTypex_YBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YBool(key typex.Y, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13094,6 +15875,9 @@ func emitMakerETTypex_YBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YBool(t typex.EventTime, key typex.Y, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13107,6 +15891,9 @@ func emitMakerTypex_YString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YString(key typex.Y, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13120,6 +15907,9 @@ func emitMakerETTypex_YString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YString(t typex.EventTime, key typex.Y, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13133,6 +15923,9 @@ func emitMakerTypex_YInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YInt(key typex.Y, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13146,6 +15939,9 @@ func emitMakerETTypex_YInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YInt(t typex.EventTime, key typex.Y, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13159,6 +15955,9 @@ func emitMakerTypex_YInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YInt8(key typex.Y, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13172,6 +15971,9 @@ func emitMakerETTypex_YInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YInt8(t typex.EventTime, key typex.Y, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13185,6 +15987,9 @@ func emitMakerTypex_YInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YInt16(key typex.Y, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13198,6 +16003,9 @@ func emitMakerETTypex_YInt16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YInt16(t typex.EventTime, key typex.Y, val int16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13211,6 +16019,9 @@ func emitMakerTypex_YInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YInt32(key typex.Y, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13224,6 +16035,9 @@ func emitMakerETTypex_YInt32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YInt32(t typex.EventTime, key typex.Y, val int32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13237,6 +16051,9 @@ func emitMakerTypex_YInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YInt64(key typex.Y, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13250,6 +16067,9 @@ func emitMakerETTypex_YInt64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YInt64(t typex.EventTime, key typex.Y, val int64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13263,6 +16083,9 @@ func emitMakerTypex_YUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YUint(key typex.Y, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13276,6 +16099,9 @@ func emitMakerETTypex_YUint(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YUint(t typex.EventTime, key typex.Y, val uint) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13289,6 +16115,9 @@ func emitMakerTypex_YUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YUint8(key typex.Y, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13302,6 +16131,9 @@ func emitMakerETTypex_YUint8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YUint8(t typex.EventTime, key typex.Y, val uint8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13315,6 +16147,9 @@ func emitMakerTypex_YUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YUint16(key typex.Y, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13328,6 +16163,9 @@ func emitMakerETTypex_YUint16(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YUint16(t typex.EventTime, key typex.Y, val uint16) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13341,6 +16179,9 @@ func emitMakerTypex_YUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YUint32(key typex.Y, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13354,6 +16195,9 @@ func emitMakerETTypex_YUint32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YUint32(t typex.EventTime, key typex.Y, val uint32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13367,6 +16211,9 @@ func emitMakerTypex_YUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YUint64(key typex.Y, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13380,6 +16227,9 @@ func emitMakerETTypex_YUint64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YUint64(t typex.EventTime, key typex.Y, val uint64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13393,6 +16243,9 @@ func emitMakerTypex_YFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YFloat32(key typex.Y, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13406,6 +16259,9 @@ func emitMakerETTypex_YFloat32(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YFloat32(t typex.EventTime, key typex.Y, val float32) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13419,6 +16275,9 @@ func emitMakerTypex_YFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YFloat64(key typex.Y, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13432,6 +16291,9 @@ func emitMakerETTypex_YFloat64(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YFloat64(t typex.EventTime, key typex.Y, val float64) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13445,6 +16307,9 @@ func emitMakerTypex_YTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YTypex_T(key typex.Y, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13458,6 +16323,9 @@ func emitMakerETTypex_YTypex_T(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YTypex_T(t typex.EventTime, key typex.Y, val typex.T) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13471,6 +16339,9 @@ func emitMakerTypex_YTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YTypex_U(key typex.Y, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13484,6 +16355,9 @@ func emitMakerETTypex_YTypex_U(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YTypex_U(t typex.EventTime, key typex.Y, val typex.U) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13497,6 +16371,9 @@ func emitMakerTypex_YTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YTypex_V(key typex.Y, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13510,6 +16387,9 @@ func emitMakerETTypex_YTypex_V(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YTypex_V(t typex.EventTime, key typex.Y, val typex.V) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13523,6 +16403,9 @@ func emitMakerTypex_YTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YTypex_W(key typex.Y, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13536,6 +16419,9 @@ func emitMakerETTypex_YTypex_W(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YTypex_W(t typex.EventTime, key typex.Y, val typex.W) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13549,6 +16435,9 @@ func emitMakerTypex_YTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YTypex_X(key typex.Y, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13562,6 +16451,9 @@ func emitMakerETTypex_YTypex_X(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YTypex_X(t typex.EventTime, key typex.Y, val typex.X) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13575,6 +16467,9 @@ func emitMakerTypex_YTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YTypex_Y(key typex.Y, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13588,6 +16483,9 @@ func emitMakerETTypex_YTypex_Y(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YTypex_Y(t typex.EventTime, key typex.Y, val typex.Y) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13601,6 +16499,9 @@ func emitMakerTypex_YTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_YTypex_Z(key typex.Y, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13614,6 +16515,9 @@ func emitMakerETTypex_YTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_YTypex_Z(t typex.EventTime, key typex.Y, val typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13627,6 +16531,9 @@ func emitMakerTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_Z(elm typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13640,6 +16547,9 @@ func emitMakerETTypex_Z(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_Z(t typex.EventTime, elm typex.Z) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: elm}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13653,6 +16563,9 @@ func emitMakerTypex_ZByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_ZByteSlice(key typex.Z, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13666,6 +16579,9 @@ func emitMakerETTypex_ZByteSlice(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_ZByteSlice(t typex.EventTime, key typex.Z, val []byte) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13679,6 +16595,9 @@ func emitMakerTypex_ZBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_ZBool(key typex.Z, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13692,6 +16611,9 @@ func emitMakerETTypex_ZBool(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_ZBool(t typex.EventTime, key typex.Z, val bool) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13705,6 +16627,9 @@ func emitMakerTypex_ZString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_ZString(key typex.Z, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13718,6 +16643,9 @@ func emitMakerETTypex_ZString(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_ZString(t typex.EventTime, key typex.Z, val string) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13731,6 +16659,9 @@ func emitMakerTypex_ZInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_ZInt(key typex.Z, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13744,6 +16675,9 @@ func emitMakerETTypex_ZInt(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_ZInt(t typex.EventTime, key typex.Z, val int) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13757,6 +16691,9 @@ func emitMakerTypex_ZInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeTypex_ZInt8(key typex.Z, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: e.et, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(e.et.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13770,6 +16707,9 @@ func emitMakerETTypex_ZInt8(n exec.ElementProcessor) exec.ReusableEmitter {
 
 func (e *emitNative) invokeETTypex_ZInt8(t typex.EventTime, key typex.Z, val int8) {
 	e.value = exec.FullValue{Windows: e.ws, Timestamp: t, Elm: key, Elm2: val}
+	if e.est != nil {
+		(*e.est).(sdf.TimestampObservingEstimator).ObserveTimestamp(t.ToTime())
+	}
 	if err := e.n.ProcessElement(e.ctx, &e.value); err != nil {
 		panic(err)
 	}
@@ -13783,6 +16723,9 @@ func emitMakerTypex_ZInt16(n exec.ElementProcessor) exec.ReusableEmitter {
... 777 lines suppressed ...